/[CvsGraph]/cvsgraph/contrib/automatic_documentation/README.Automatic_documentation
ViewVC logotype

Annotate of /cvsgraph/contrib/automatic_documentation/README.Automatic_documentation

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations)
Sat Oct 23 00:25:32 2004 UTC (13 years ago) by bertho
Branch: MAIN
CVS Tags: REL_1_6_2, REL_1_6_0, REL_1_5_1, REL_1_7_0, merge_automake_dev1_20080521, REL_1_5_2, merge_head_20080521, source_head_20080521, source_automake_dev1_20080521, REL_1_6_1, HEAD
Branch point for: automake-dev1, svn-integration
Changes since 1.1: +1 -1 lines
Minor docu updates and release 1.5.1
1 Contributed to CvsGraph by Henrik Carlqvist <henca@users.SourceForge.net>
2 Original: Sun, 2 May 2004 20:42:47 +0200
3 Modified: Tue, 24 Aug 2004 19:13:45 +0200
4 Included: Sun, 29 Aug 2004 14:30.00 +0200
5 -------------------------------------------------------------------------
6
7 Hello and thanks for cvsgraph which is a great program!
8
9 We used to manually draw ascii-graphics do document our tags and branches.
10 Then we found cvsgraph which could automatically draw graphs for us.
11
12 Unfortunately CVS by itself does not keep the information that is needed to
13 find out on which branch a tag belog. If a file on a branch is unmodified
14 compared to the main trunk CVS behaves as if all tags also were on the main
15 trunk even though they belong to a branch.
16
17 The solution was a few CVS scripts which creates a new file which exist only
18 to keep track of tags and branches. I hope that more people will find these
19 scripts useful and include them in this email as attachements. The included
20 files belong to $CVSROOT/CVSROOT/
21
22 The file tag_action.sh creates and maintains a file called .cvs_tag_tracer
23 which has the information we need about which tags belongs to which branches.
24
25 The file commit_action.sh adds an extra tag to .cvs_tag_tracer at a cvs commit
26 after a cvs update -j, this is to trace merges with cvsgraph.
27
28 The file checkoutlist is modified to list our two new files in CVSROOT.
29
30 The file cvswrappers make sure that the file .cvs_tag_tracer always is copied
31 and not merged. This is necessary to trace merges and to avoid conflicts at
32 updates and merges.
33
34 The file taginfo makes sure that our file tag_action.sh is called at "cvs
35 tag".
36
37 The file commitinfo makes sure that our file commit_action.sh is called at
38 "cvs commit".
39
40 For cvsgraph to trace merges with the system above I have the following in
41 cvsgraph.conf:
42
43 merge_from = "^(.*)";
44 merge_to = "^(.*)merged_%1$";
45
46 Finnaly I have made some minor changes to cvsgraph, these changes are included
47 in ugly_hack.diff. (BSnote: included since 1.5.1)
48
49 First it seems as if the time stamps in our cvsroot are utc-time. For the
50 graph to present the correct local time I had to add the row
51 "t -= timezone;". (BSnote: included since 1.5.0 and fixed again in 1.5.1)
52
53 Then as we are now tracing our .cvs_tag_tracer which is not really a part of
54 the source code we are no longer interested in any revision numbers of that
55 file. Therefore in my patch, the revision numbers are no longer presented.
56 Unfortunately I was and still am very short of time and this applies to all of
57 us in our project. The right way to do this patch would be to add some kind of
58 configuration option, but now the patch simply removes any revision info.
59
60 The third thing the patch does is that it hides the tag name of our special
61 merge tag. This is because that tag is only set on the file .cvs_tag_tracer,
62 the other files doesn't have that tag so we don't want to present it.
63
64 There are a few prerequisites and limitations:
65
66 As the scripts are unix scripts CVS must be run on unix. The CVS archive must
67 be in the file system, not on a CVS server. A recent version of CVS is
68 needed. 1.11 works, 1.9 does not work. I don't know about 1.10. Everything
69 seem to work with 1.9 except tracing merges, this is because "-m 'COPY'" in
70 cvswrappers does not behave as expected. New tags can only be created at the
71 end of a branch or main-trunk. After a "cvs update -j" you have to do a "cvs
72 commit" before doing any more "cvs update", otherwise the information about
73 the first "update -j" will be lost in .cvs_tag_tracer.
74
75 A file .cvs_tag_tracer will be created in every directory. Because of this I
76 have also made a patch to cvs2html which we use to hide that file.
77
78 I hope that you will find the attached scripts useful. Feel free to do
79 whatever you wish with them. I also apologize for my ugly hack, I wish that I
80 would have had the time to do this the right way. If you think that my scripts
81 mean more work than it is worth or have to much limitations you could simply
82 ignore this email.
83
84 Best regards Henrik

  ViewVC Help
Powered by ViewVC 1.1.0 with CvsGraph 1.7.0