[OpenWalnut-Dev] abort: outstanding uncommitted changes

Christian Heine cheine at inf.ethz.ch
Thu Jul 5 10:18:41 CEST 2012


Hi list.

On 04.07.2012 21:58, Mathias Goldau wrote:
> [...] Hg queues are a mess (not very intuitve to use) and
> considered very dangerous (at least I believe christan said that it
> modifies the underlying .hg/* files directly). [...]

Just to clarify. I am a proponent of mercurial patch queues and use them 
all the time (just not for the named purpose). They are not messy, 
unless you mean the inconsistent naming of operations with the rest of 
mercurial. They are not dangerous other from the two points that patch 
queues are not automatically synchronized between repositories (some 
even consider it a feature), and the potential data loss through misuse 
of the commands resulting from the above-mentioned 
naming-inconsistencies, but nothing more serious than a misplaced "hg 
revert".

I second the official solution that Alex pointed too, because it uses 
only concepts (read commands) that are also used in everyday mercurial 
and are hence easier to remember and therefore robust to errors. 
Besides, using patch queues would not require less commands.

I prefer the official solution of "clone+merge+commit+push+update" (in 
which the "push+update" can be replaced by a "pull -u") even to 
"diff+revert+merge+commit+patch", because even though they may require 
less "cd"s, "revert" has a potential data loss (in case you forget to 
diff, or diff the wrong part), and diff/patch does not correctly 
preserve renames.

I do not know "shelve", but it sounds like it might be an even better 
solution.

Another solution I can think of is the double repo strategy. Repo A 
clones the server and is used for merging, Repo B clones Repo A and is 
used as working directory. This solution is more useful as long as the 
number of double "pull"s and "push"s do not outweigh the number of 
temporary repo creations for the purposed of merging.

Best regards,
Christian

-- 
Dipl.-Inf. Christian Heine
c/o Information Technology and Education
ETH-Zentrum, CAB G 66.2
Universitätsstrasse 6                 | Phone: +41 44 632 28 49
CH-8092 Zürich, Switzerland           | http://www.scivis.ethz.ch




More information about the OpenWalnut-Dev mailing list