From: Junio C Hamano Date: Tue, 15 Jul 2008 21:49:24 GMT Subject: Re: [PATCH 2/2] git-gui: Allow "Stage Line" to stage adjacent changes independently Message-ID: <7vy742zul7.fsf@gitster.siamese.dyndns.org> In-Reply-To: <1216156261-9687-2-git-send-email-johannes.sixt@telecom.at> Johannes Sixt writes: > Consider this hunk: > > @@ -10,4 +10,4 @@ > context before > -old 1 > -old 2 > +new 1 > +new 2 > context after > > [Nomenclature: to "stage change 2" means to stage lines "-old 1" and > "+new 1", in any order; likewise for "unstage" and "change 2".] You lost me. Do you mean to say that you always interpret the above hunk as: @@ -10,4 +10,4 @@ context before -old 1 +new 1 -old 2 +new 2 context after and call "replace 'old 1' with 'new 1'" as "change 1", "replace 'old 2' with 'new 2'" as "change 2"? If it is what you are doing, it does not make much sense to me. "new 1" may correspond to "old 1" and "old 2" while "new 2" may be an independent addition. E.g. @@ -10,4 +10,4 @@ context before -#define add(x,y) \ - (x) + (y) +#define add(x,y) ((x)+(y)) +#define sub(x,y) ((x)-(y)) context after I might want to pick bugfix of add() definition without using the new definition of sub(). Please call "-old 1" - change #1 "-old 2" - change #2 "+new 1" - change #3 "+new 2" - change #4 and try explaining what you are doing again, pretty please?