[Top][All Lists]
[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
- How to extract fine-grained snapshot history?,
Kynn Jones <=