info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

update -j questions


From: Mark
Subject: update -j questions
Date: Tue, 21 Aug 2001 14:53:01 -0700 (PDT)

My questions are about what the update command does in a branch to branch
merge:

1) With only one -j, "cvs update -j br_01 testfile", with testfile on the head
(see dia. below):
       - a diff is done from 1.2 to the 1.4 file from CVS work area
       - a diff is done from 1.2 to 1.2.2.2
       - the deltas produced from the above diffs are applied to 1.2 and if
either delta trys to change the same line of 1.2, that results in a conflict
       - the resultant of applying the deltas to 1.2 (the merge) is placed in
the workarea inplace of 1.4, (then checked in as 1.5)

1.1 -> 1.2 -> 1.3 -> 1.4(target of merge)
       |
       1.2.2.1 -> 1.2.2.2

1) Is that basically what happens or am I way off?

2) With two -j's, "cvs update -j 1.2.2.2 -j br_01 testfile", with testfile on
the head (see dia. below):
       - a diff is done from 1.2.2.2 to 1.2.2.4
       - a diff is done from 1.2 to the 1.6 file from CVS work area
       - the deltas produced from the above diffs are applied to 1.2 and if
either delta trys to change the same line of 1.2, that results in a conflict
       - the resultant of applying the deltas to 1.2 is placed in the workarea
inplace of 1.6, (then checked in as 1.7)

1.1 -> 1.2 -> 1.3 -> 1.4 -> 1.5 -> 1.6(target of merge) 
       |
       1.2.2.1 -> 1.2.2.2 -> 1.2.2.3 -> 1.2.2.4

2) Is this even close to what's really happening?

3a) If so, how does the second merge know that changes made on the head (1.5)
where from the branch from the first merge? What I mean is that delta
1.2.2.1->1.2.2.2 has a particualar change (adding uniq lines). That change was
merged to the head in the first merge, into 1.5. Delta 1.2.2.3->1.2.2.4 changes
that same code, but when the branch is merged in the second merge, it does not
produce a conflict, even though both deltas are affecting the same line. So I
am begining to think there is more to the second merge delta calcuation or
application than I know. (I have shown to myself the a change made 1.2->1.3 can
cause a conflict with the second merge above)

The testfile only has about 10 lines, so I'm not trying to fool the system. I
am just trying to understand, functionally, what is going on when I issue a cvs
update -j (-j)

Thanks,

Mark 




__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]