Tuesday, March 27, 2012

[lmuzpeyn] Push changes and let someone else merge

A workflow which I don't know how to achieve with any revision control system, including Git.

A single-user (me), so no need to worry about the social or adversarial aspects.

There exists a central computer and repository which is always on and connected to the internet.

And local checkouts on laptops which might not always be network connected, or even on.

At the end of a session on a laptop, push all changes (a snapshot) to the center.  However, for whatever reason, the merge might not succeed.  If so, we want postpone the problem of merging until later and to do it elsewhere.  All the necessary information for the merge needs to get transmitted off the laptop and into some "dirty merge queue" at the central repository.  The laptop gets disconnected from the net and powered off. 

Later, access the central repository and do the merge, not needing to access anything from the laptop.  (If the merge was clean, then it automatically went through, and this step is unnecessary.)

Much later, power on the laptop again, do a "pull" or "update" to synchronize with the master tree.  However, if I still hadn't gotten around to doing the merge in the previous step, nothing bad should happen.

No comments :