"Skip Montanaro" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] >I created a branch from HEAD, worked on it for awhile, but never > merged it back to HEAD. For various reasons (mostly my CVS > incompetence) merging the branch back to HEAD or merging HEAD to the > branch is generating tons of conflicts. Is there a way to generate a > diff between the initial state of the branch and its current state?
Two ways: 1a. If you also created a symbolic tag at the same time you created the branch tag (which is what you should have done), then you just diff the branch tag (which is the branch's current head) against that symbolic tag. 1b. If you did not create a symbolic tag, you can still create one based on the date/time the branch was created (assuming you know exactly when you created the branch). You can use 'cvs tag' or 'cvs rtag' with the -D (for date) switch to create the symbolic tag. 2. Use the -D switch on the 'cvs diff' command to specify the date/time when you created the branch as the starting point, and the branch tag as the ending point. For example: cvs di -D <date/time> -r <branch> CVS accepts lots of different date/time syntaxes, but an easy one is: "yyyy-mm-dd hh:mm:ss" (quotes are required because of the space between the date and time). However, timestamps can be tricky. For example, time stamps in CVS are usually given in UTC (for example in the case of a 'cvs log' command), so if you want to do a diff using a date/time, you may find that you have to specify the time according to your local timezone, and not in UTC (as 'cvs log' gives). Assuming you can manage the timestamp issue, you should have no trouble getting the diff you need. - Dennis
