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



_______________________________________________
Info-cvs mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/info-cvs

Reply via email to