1 |
Fabian Groffen posted on Thu, 02 Jun 2011 11:13:38 +0200 as excerpted: |
2 |
|
3 |
> Obviously, all history is lost. VCSs other than CVS might keep history |
4 |
> across moves here (svn, git, hg...), hence a "follow" could perhaps find |
5 |
> renames. Question is if this can be detected in such a way that a |
6 |
> useful ChangeLog can be generated. Will version bumps that are almost |
7 |
> identical copies, that show up as copies/renames cause issues here? |
8 |
|
9 |
Git, which has been described as a content tracker that happens to have a |
10 |
DVCS of the same name built around it, definitely follows moves/renames |
11 |
without losing history. It even has an adjustable percent-change |
12 |
threshold at which a similar file is detected as a move/rename, for |
13 |
purposes of git-log and statistics generation. |
14 |
|
15 |
The problem with autogeneration based on git log would then come down to |
16 |
the impedance miss-match between git as a content tracker and a file-based |
17 |
changelog. |
18 |
|
19 |
For those with access to the full git repo and log, it isn't normally a |
20 |
problem since the content isn't lost, you just switch your git log |
21 |
filtering to include both locations instead of just one. (And false- |
22 |
positives aren't generally a problem either in that case, the human filter |
23 |
picks up on it pretty fast and rejects it /as/ a false positive, and the |
24 |
the git log filtering simply doesn't get changed.) This of course is yet |
25 |
another factor in favor of allowing full git-pull access to all, the whole |
26 |
auto-generation thing becomes moot. |
27 |
|
28 |
If full git-pull access is not allowed for all, however, or if the rsync |
29 |
sync options are retained as they likely will be in any case, then |
30 |
generated changelogs remains a valid consideration. |
31 |
|
32 |
Perhaps the easiest approach in that case would be to simply take the |
33 |
limitation at face value, accepting that generated changelogs apply to |
34 |
only the current package name, and to lookup what happened before a move, |
35 |
one either does the full git checkout (if it's a public option) and looks |
36 |
there, or checks the gitweb, etc, status. |
37 |
|
38 |
As for dealing with the existing history and changelogs, either the |
39 |
conversion scripts can take what they can get out of the CVS logs and |
40 |
settle for that, or the existing changelogs could be committed, then |
41 |
deleted and that committed, so anyone wanting to see the existing history |
42 |
at the time of the conversion could simply check the changelog as it was |
43 |
initially committed and then deleted. |
44 |
|
45 |
-- |
46 |
Duncan - List replies preferred. No HTML msgs. |
47 |
"Every nonfree program has a lord, a master -- |
48 |
and if you use the program, he is your master." Richard Stallman |