aboutsummaryrefslogtreecommitdiffstats
path: root/src/svn.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Better log messagesTorgny Nyblom2010-09-091-2/+2
|
* Only add a '/' if the path is a dirTorgny Nyblom2010-09-081-1/+7
|
* More verbose debug outputTorgny Nyblom2010-09-081-4/+4
|
* Try and work around cvs2svn branching/tagging issues where the directory ↵Torgny Nyblom2010-09-081-0/+7
| | | | tree is not what it seems like
* Make sure that the path part is empty before deleting a whole branch. If the ↵Torgny Nyblom2010-09-041-2/+2
| | | | prefix option for a rule is used current == svnprefix does not mean that we are dealing with the root of a branch, path needs to be empty as well.
* White space cleanup & debug statmentsTorgny Nyblom2010-09-041-78/+101
|
* Merge branch 'master' of git://gitorious.org/svn2git/svn2gitRaja R Harinath2010-08-241-2/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | The conflict was mainly around two different approaches to fixing the linear commitMarks issue. The precise tracking of commit marks per branch is better, and that's how I resolved the merge conflict. While at it, I also removed the "revision-*" files, since the "log-*" files already have the same information, and the branch information too. Conflicts: src/repository.cpp src/repository.h
| * Merge commit 'refs/merge-requests/1' of ↵Torgny Nyblom2010-08-091-1/+1
| |\ | | | | | | | | | git://gitorious.org/~marcguenther/svn2git/marcguenther-svn2git into integration
| | * Fix broken utf-8 filenames.Pavel Plesov2010-05-181-1/+1
| | |
| * | Exit if unable to open repositoryTorgny Nyblom2010-08-091-1/+4
| |/
* | Remove exit(1) in createBranch. Return EXIT_SUCCESS/EXIT_FAILURE insteadRaja R Harinath2010-07-201-3/+3
| | | | | | | | | | | | Allow graceful exit of all fast-import processes when createBranch fails. For consistency, add return value to deleteBranch, even though it always returns EXIT_SUCCESS.
* | Handle branching better for branches that use "prefix" rulesRaja R Harinath2010-07-121-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | When creating branches/tags off a branch that use "prefix" rules, svn2git used to create new commits rather than just copying the git ref over. This was due to SvnRevision::exportInteral() using 'path.isEmpty()' to determine if a change related to the whole branch or not. If a "prefix" rule is used, then 'path' will not be empty. We change it to instead look at how much of the change string was chomped up by the rule match. If the whole string was chomped up, it means that the change describes the whole branch.
* | Handle SVN directory deletes that lead to branch deletesRaja R Harinath2010-07-081-22/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SVN directory deletes often indicate one or more branch deletions. However, since the deleted directory isn't present in the resulting revision, several of the indicators used by the rule-application mechanism aren't present. This forces us to introduce several useless dummy rules to avoid errors. We now note deletions and use the previous revision to determine several properties, including whether the deleted item is a directory or not, and to enumerate the contents of the directory in recurse mode. We add an additional heuristic for unknown repositories -- i.e., when a rule fired, but it's repository was invalid. We recurse in this case hoping to catch a more specific rule. I believe this is safe: because some other rule must've seen the same directory before, when it or a subdirectory was created, and decided _not_ to create a repository at that point -- so recursing and/or ignoring the contents of the just deleted directory won't corrupt the history, it can only improve it. We use mark :0 to note mark deletions internally, and in the progress logs. (Note that cvs2svn creates wierd commits where a whole tree is copied first, and then subtrees are pruned. In such cases, neither the previous revision nor the current revision have the deleted directory -- we ignore this case as before. There's no information loss since the final contents of the revision are exactly what is desired.)
* | Don't skip same branch revisions when inferring multiple merge parents.Raja R Harinath2010-07-011-6/+2
| | | | | | | | | | Experience with the mono tree shows that it isn't too annoying, and there might be some useful history hidden in there.
* | Infer some copy sources as additional parentsRaja R Harinath2010-07-011-45/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Handle same branch copies using createBranch to allow reseatingRaja R Harinath2010-07-011-12/+12
|/ | | | branch tip to an older revision.
* Fix svn.replaceTorgny Nyblom2010-05-031-5/+5
|
* Implement the replace node changeset which exists from some repositories ↵Ulrich Spörlein2010-04-291-5/+23
| | | | namely the FreeBSD svn rep
* Split into two rows.Torgny Nyblom2010-04-291-1/+2
|
* Merge remote branch 'svn2git/master'Marc Guenther marcguenther@me.com2010-04-141-4/+1
|\
| * Move slash cleaning to a more generic placeTorgny Nyblom2010-04-141-4/+1
| |
* | Merge remote branch 'svn2git/master'Marc Guenther marcguenther@me.com2010-04-141-5/+3
|\ \ | |/ | | | | | | Conflicts: src/svn.cpp
| * Fix logical error in last commit. There was no slash added betweenTorgny Nyblom2010-04-131-5/+3
| | | | | | | | prefix and path under certain conditions.
* | 'prefix' rule didn't allow \1 \2 replacementsMarc Guenther marcguenther@me.com2010-04-141-1/+2
|/
* Oups (use the correct string)Torgny Nyblom2010-04-121-1/+1
|
* Fix logical error (deleted paths was ignored)Torgny Nyblom2010-04-121-1/+4
| | | | Improve the ruleparser so that prefix never starts or ends with a '/'
* Ditch the Rootdir option and add a prefix one instead (Thiago is always ↵Torgny Nyblom2010-04-121-11/+6
| | | | correct :))
* Add command line option to print what rules are used on each file.Torgny Nyblom2010-03-251-0/+2
|
* Add support for a new rule tag:Torgny Nyblom2010-03-151-6/+15
| | | | | | | | | | | | | | | | | 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
* Change license on files where I am copyright holder to GPLv3.Thiago Macieira2010-03-031-1/+1
| | | | | 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.
* make dry-run a command line switch instead of a compile-time switchThomas Zander2009-10-211-20/+21
|
* Make passing in a trailing slash not assert.Thomas Zander2009-10-201-1/+4
|
* Add support for annotated tagsThiago Macieira2009-06-081-5/+23
|
* Fix the recursing when the sub-path was modified instead of just addedThiago Macieira2009-06-081-1/+3
|
* Properly interpret Subversion dates as UTC.Anders Kaseorg2009-01-081-1/+1
| | | | | | | | 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>
* Read symbolic links correctly.Anders Kaseorg2009-01-081-6/+20
| | | | | | | | ---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>
* Add missing calls to svn_stream_close().Anders Kaseorg2009-01-081-0/+2
| | | | | | | ---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>
* General improvements and reload branches automatically when starting ↵Thiago Macieira2008-08-181-3/+3
| | | | git-fast-import
* Do not try to recurse into files when under a "recurse" actionThiago Macieira2008-08-181-0/+3
|
* Implement the identity mapThiago Macieira2007-12-281-0/+5
|
* Wait forever. Not very efficient, but works.Thiago Macieira2007-12-281-3/+2
|
* Fail if writing to the process failsThiago Macieira2007-12-281-2/+11
|
* Complement the recurse rule finding (or not finding)Thiago Macieira2007-12-271-1/+3
|
* Reintroduce the recurse rule. It's useful if you have a catch-all ignore rule.Thiago Macieira2007-12-271-6/+23
|
* Allow one commit to multiple branches of the same repository.Thiago Macieira2007-12-261-2/+2
|
* Add missing returnThiago Macieira2007-12-261-0/+2
|
* Avoid ending slashes and mid double-slashesThiago Macieira2007-12-261-6/+5
|
* More information when saying you can't continueThiago Macieira2007-12-261-1/+2
|
* Don't recurse into a directory if it's a perfect branchThiago Macieira2007-12-261-0/+1
|
* Skip entries in recursion if said entries are in the changelist alreadyThiago Macieira2007-12-261-6/+15
|