Marc Haber <> wrote:
> Hi John,
> On Fri, May 27, 2016 at 12:47:04PM -0700, John Whitley wrote:
>> You can check out my setup at jwhitley/vcsh-root on Github[1].
> One more question: When you live with this setup, is there a "golden
> host" which you usually use to push your changes, or do you regularly
> push from any host that might have been the cause or a change?

No.  I assume that there are multiple hosts which may have changes “in flight”. 
 This may be a desktop vs. laptop, personal vs. work system, multiple work VMs, 
and so on.

> Are all your host's checkouts on the master branch and get
> continuously rebased when you pull, or do you have host-specific
> branches on all hosts? If you have host-specific branches, how do you
> push/merge/pull/fetch to distribute your changes to other hosts?

See my vcsh hooks at [1]: one hook runs `git config pull.rebase true` on every 
repo.  Thus any attempt to pull into one of my vcsh managed repos automatically 
rebases.  So my workflow is generally:

1) `vcsh pull`, to grab any changes on GitHub not on this host.  This rebases.
2) `vcsh push`, and done.

It’s really rare that I have any conflicts during rebase.  When I do, they 
always tend to be trivial.  Conflicts most commonly happen because I forgot to 
push some important fix from one host and decide to rewrite it on another.

This creates a purely linear history, and I find to be much easier to manage 
than per-host repos, IMO.  No merging to multiple branches, no complex history.

As for per-host configuration, I use two approaches.  First, my zsh setup has 
both environment and alias configuration that’s architecture specific from 
files under `~/.zlocal/${arch}`, and optionally loads non-version controlled, 
this-host-only configuration from `~/.zlocal/this`.  Second, I can always 
modify the enabled set of vcsh/mr repos on one host.  If needed, I’ll add a 
host-specific repo if there are changes that really need to be versioned and 
isolated (e.g. for a work context).  

—- John


vcs-home mailing list

Reply via email to