On Tue, Jul 03, 2001 at 10:31:40AM -0400, Guido van Rossum wrote: > > Slightly off-topic, but I've depleted all my other sources :) I'm tryin= g to > > get CVS to give me all logentries for all checkins in a specific branch= (the > > 2.1.1 branch) so I can pipe it through logmerge. It seems the one thing= I'm > > missing now is a branchpoint tag (which should translate to a revision = with > > an even number of dots, apparently) but 'release21' and 'release21-main= t' > > both don't qualify. Even the usage logmerge suggests (cvs log -rrelease= 21) > > doesn't work, gives me a bunch of "no revision =12elease21' in <file>" > > warnings and just all logentries for those files. > But those files should be old, so logmerge should safely sort their > messages last, right? Yes, but it also lists all checkin messages for all branches, including the trunk, after release21... so I end up no smarter than without '-rrelease21'. > > Am I missing something simple, here, or should I hack logmerge to parse= the > > symbolic names, figure out the even-dotted revision for each file from = the > > uneven-dotted branch-tag, and filter out stuff outside that range ? :P > You're lucky: at least the fork point is tagged (release21). For the > descr-branch, if I want to do some kind of reasonable merge, I'll have > to write a tool that figures out the fork point and tags it. That's > one "cvs tag" call for each file... No, that's one 'cvs log' command; for each entry, it contains all symbolic names. All you need to do <wink> is to search for the descr-branch symbolic name in that list, grab the revision it lists (if any), chop off the last dot-and-digit, and you're done. You can almost do that in a shell oneliner: centurion:~/python/python-CVS > cvs log | egrep "(RCS file:|descr-branch:)"= | python -c " import fileinput lastline =3D '' for line in fileinput.input(): if lastline and line[0] =3D=3D '\t': filename =3D lastline[33:-3] revision =3D line.split()[1] branchpoint =3D revision[:revision.rindex('.')] print filename, branchpoint lastline =3D '' else: lastline =3D line " (adjust quotes for (t)csh, I guess) Tadaaa! Hmm... I'll just use that myself, too <wink>. But why not merge the trunk into your tree ? You can do that with cvs update -j HEAD inside your (sticky-tagged) working tree, IIRC. It doesn't change the repository either, just your working directory, so it's safe to try in a separate directory. Then, when you're satisfied it all works, you can commit the whole thing. --=20 Thomas Wouters <thomas@xs4all.net> Hi! I'm a .signature virus! copy me into your .signature file to help me sp= read!
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4