| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
15 commit parents.
|
|
|
|
|
| |
Experience with the mono tree shows that it isn't too annoying, and
there might be some useful history hidden in there.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We use a literal meaning of multiple commit parents to allow us to infer
some partial repository copying as merges. This helps us
1) track history despite some directory reorganization
2) link subset commits to parents
3) infer some merges which were achieved by overwriting
a subtree with contents from another branch
This seems to work well enough even with cvs2svn monster commits. The
heuristics have been tuned by gut feel to work reasonably well with mono's
SVN repository. They can definitely be improved.
|
| |
|
|
|
|
| |
branch tip to an older revision.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we support arbitrarily reseating branches, the branch can be
reset to older SVN revisions or derive from a different branch point.
The "only fast-forward" rule of git branch imports gets in our way.
Note that the application of the rule is fairly unpredictable since the
checking happens only at 'checkpoint's.
Let's trust our handling of SVN history and override the sanity-check.
Note that we don't lose any information since reseated branches are
snapshotted before reset.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the progress log for commit and branch creation more uniform and
machine parse-able. Add 'mark' information to log so that it can be
cross-referenced against the fast-import marks file.
The log-* files now have enough information in a convenient enough form
that the export can eventually be made fully resumable and incremental.
The format is essentially
progress SVN r<svn-rev> branch <git-branch> = (:<mark> | <other-git-branch>)
with a possible trailing # comment. Any line not matching this can be
The incremental mode would prime the internal structures with
if (<mark>) repository->commitMarks[<svn-rev>] = <mark>;
repository->branches[<git-branch>].commits.append(<svn-rev>);
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, all the SVN commits were tracked in a linear array, and we searched
for nearest commits in that array. However, SVN history is not linear, and the
'next smallest commit' search was picking the wrong commit.
I've moved the commit array into the 'Branch' structure.
As a minor subtlety, the branch creation revision is also noted in the
'commitMarks' structure, by copying the commit mark of the branch point.
We need this to ensure that the commits array is strictly non-decreasing.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes the logic of commit 209e6ce4ddf114494d6d72455690af819dcbf18c
qLowerBound doesn't have the desired semantics -- it returns the position of the
first item which is not smaller than the search key.
The intended semantics seems to be to find the given key, or the next smallest one.
This is almost given by qUpperBound -- it returns an element one past the desired result.
I've also added some additional debugging code to help debug this.
|
|
|
|
|
|
|
|
|
|
| |
Branches and marks are now long-lived. The marks have to survive even
if the fast-import process goes away. So, use the --import- and --export-marks
feature of fast-import to persist marks.
These marks are only meant for the duration of this 'svn-all-fast-export' and
don't confer any new incremental behaviour. You'll need a mark to SVN commit map
for that, at least.
|
| |
|
|
|
|
| |
Ensure that marks start at 1, now that they're visible in the logs
|
| |
|
| |
|
| |
|
|
|
|
| |
namely the FreeBSD svn rep
|
| |
|
| |
|
|\ |
|
| | |
|
|\ \
| |/
| |
| |
| | |
Conflicts:
src/svn.cpp
|
| |
| |
| |
| | |
prefix and path under certain conditions.
|
|/ |
|
| |
|
|
|
|
| |
Improve the ruleparser so that prefix never starts or ends with a '/'
|
|
|
|
| |
correct :))
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rootdir /a/path/
This should be the part of the match that shouldn't be included in the
commited path.
Ex:
match /trunk/kdenetwork/kmail/
rootdir /trunk/kdenetwork/
repository KDE/kdepim
branch master
end match
This would but all matched files/directories under kmail into the
repository under the subdir kmail
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The GPLv2 is incompatible with the Apache 2.0 License used in the SVN libs.
So everyone was using this software under the GPLv3 anyway. Formalise it now.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Instead of failing with an unhelpful error in fast-import we create the
repositories we require to import into if they don't exist.
|
|
|
|
| |
found...
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
mktime interprets its input in the local timezone. This can be fixed
by using timegm instead of mktime.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Thiago Macieira <thiago@kde.org>
|
|
|
|
|
| |
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Thiago Macieira <thiago@kde.org>
|
|
|
|
|
|
|
|
| |
---1257098496-2120511158-1230496052=:2755Symlinks are described in Subversion by a file with propertysvn:special set to “*”, with contents “link <target of symlink>”. We
need to strip off the “link ” when exporting to Git.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Thiago Macieira <thiago@kde.org>
|
|
|
|
|
|
|
| |
---1257098496-5312088-1230496020=:2755svn_stream_copy() does not automatically close its streams. (Thatfeature will be added in Subversion 1.6’s svn_stream_copy3().)
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Thiago Macieira <thiago@kde.org>
|
|
|
|
|
| |
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Thiago Macieira <thiago@kde.org>
|
|
|
|
| |
SVN revision
|