[Xorg] Reorganizing the xc/include directory
eich at suse.de
Mon May 17 11:07:54 PDT 2004
Carl Worth writes:
> On Mon, 17 May 2004 19:32:21 +0200, Egbert Eich wrote:
> > > We won't be able to use regular CVS commands to actually move the files as
> > > I'd like to preserve CVS history for them.
> > Hmm. If you move around files in the repository you will never be able
> > to checkout the previous state.
> Moving files doesn't work, but copying them isn't so bad.
> Copying the ,v file gives you the history that would be lost with "cvs
> add". The ugly side effect is that checkouts of the old tree will have
> the file under both names. This looks ugly, but most build systems will
> be happy to ignore the extra files.
> "cvs remove" can still be used to provide only one name of each file in
> future checkouts.
If you do a copy and a cvs remove at the old location and remove
the old tags from the moved file you should be able to restore the
provious states of the tree however retain the history. Disadvantage
you cannot do a cvs diff with an older tag. Maybe editing the tags
so that they don't conflict with the old ones but have a simple
enough relationship to the old ones may be a reasonable kludge.
This could be scripted to avoid problems. This however needs to
be applied to the repositry and had an immediate effect on everybody.
Here is what I would suggest:
- Check out a tree on fd.o. Wveryone who wants to work on it must
log in and work there.
- Document any moving of files in a parsable way.
- When satisfied with how things are working
1. create a diff of the *changed* files (not the moved ones)
2. lock the main repository for commits
3. create a backup copy of the repository
4. apply the diff form 1.
5. run a script on the list of changes create above that
a. copies the file in the repository
b. edits the tags in the copy
c. cvs remove the old file
d. Adds a comment to the file and the log about the move.
6. Verify that everything is in a sane state by building head
and comparing an older branch checked out prior to this
7. reopen the repository for new commits.
More information about the xorg