On Mon, Jul 28, 2008 at 03:00:03PM +0000, Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum wrote:
For example the fact that split points are not associated with a CVS commit, so you have to fake one (something that the current git import apparently doesn't).
because git doesn't need it. only svn makes a commit for the split. in git the split is represented by the fact that a parent commit has two children. the parent is before the split, and the two children are after. what extra information would a split commit give you? the exact time when you decided to make the split? how is that relevant?
for git, a split does not become relevent until you actually make a commit to the new branch, as such the split time is the time when the second child is created, until then the history is linear, and no split actually occured before that point, regardless of when you made the decision to split.
(Are git branch names version controlled? In the svn export the main development branch is renamed 0.5->0.6->0.7->7.0->7.1->7.3->7.5->7.7 at apropriate times.)
git branches are simple references. just like symlinks, that point to the head of the branch. there is a reflog for each branch (if activated) which shows where a branch-head has been pointing to at previous times. but that information is purely local and won't be reproduced when someone clones the repo.
so when you get the repo you do not get any branch name history, only the current state. there is also nothing that tells you which branch a given commit used to be part of, there are only ways to show which branch a commit is part of at this moment (git branch --contains <commit>)
greetings, martin.