info-cvs
[Top][All Lists]
Advanced

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

How to extract fine-grained snapshot history?


From: Kynn Jones
Subject: How to extract fine-grained snapshot history?
Date: Wed, 16 Jun 2004 08:41:06 -0400 (EDT)




For any given project under CVS control, every time someone makes a
commit, the project changes state, as far as CVS is concerned.  The
finest-grain history of this project, as far as CVS knows it, would
consist of a sequence of "snapshots" of the project as it would appear
right after each one of these commits.  To be more precise, suppose
that after each commit, we did

  % cd $WORKING_DIRECTORY/..
  % rm -rf $WORKING_DIRECTORY
  % cvs co [-r $ACTIVE_BRANCH] MyProject
  % tar czf MyProject_Snapshot_<xxx>.tgz MyProject

where $ACTIVE_BRANCH is the branch that was current when the commit
was issued (if it was the trunk, then the -r option to the checkout
command is omitted).  Then we would end up with a sequence of
snapshots (in this case compressed tar files) of the project.

The repository holds all the information necessary to recreate such a
sequence of snapshots.  If there were only one branch to worry about,
getting this sequence would be simply a matter of extracting from the
repository the times of all the commits to MyProject and for each of
one these times doing a checkout of MyProject with the appropriate
argument to the -D option.

The problem is more complicated when the project has multiple
branches, because it requires associating each commit time with a
branch.

Therefore, my question is:

  1.  How to extract the times of all the commits to a project
      (including recursively all subprojects, of course).

  2.  How to associate each of these times with the branch that was
      active when the corresponding commit took place.

Thanks!

kj





reply via email to

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