aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Stop unintended re-encoding of author names from UTF-8 to ASCIIHEADmasterSebastian Pipping2013-05-191-1/+1
| | | | | | | | | | | | | | | | To see the bug in action, use an author map with umlauts, e.g. nickname = Hällo Wörld from UTF-8 <mail@example.org> and check "git log" after the conversion. What is happening? QByteArray "author" is first decoded as UTF-8 into a QString. That QString is passed to QByteArray::append(const QString &) which internally encodes the QString to ASCII byte data using QString::toAscii(). "git fast-import" expects UTF-8 input from us, so the original QByteArray with UTF-8 content is just what we need.
* Stop unintended re-encoding of author names from UTF-8 to ASCIISebastian Pipping2013-05-171-1/+1
| | | | | | | | | | | | | | | | To see the bug in action, use an author map with umlauts, e.g. nickname = Hällo Wörld from UTF-8 <mail@example.org> and check "git log" after the conversion. What is happening? QByteArray "author" is first decoded as UTF-8 into a QString. That QString is passed to QByteArray::append(const QString &) which internally encodes the QString to ASCII byte data using QString::toAscii(). "git fast-import" expects UTF-8 input from us, so the original QByteArray with UTF-8 content is just what we need.
* Fix compilation, the last rebase/merge went wrong.Ulrich Spörlein2012-11-281-1/+1
| | | | Noticed by: Andy Pilate
* Use fastimport.write for the actual commit objects too, so we getUlrich Spörlein2012-11-271-23/+20
| | | | logging when --debug-rules is turned on.
* Remove unused includes.Ulrich Spörlein2012-11-271-2/+0
| | | | Forgotten by yours truly in commit 1234336.
* Make conversion runs deterministic by sorting what's returned via hash from ↵Ulrich Spörlein2012-11-261-23/+51
| | | | | | | | | | | | | | | | | | | the SVN API. An SVN commit spanning multiple paths that shall be turned into multiple branches in git would result in the git commits to be fed into git fast-import in arbitrary order. This is problematic for merge commits, as it means the list of parent commits for the merge commit will have an arbitrary order. Fix this by always handling the paths in an SVN commit in order. This makes svn2git conversion runs reproducible. Unfortunately, commits where paths have been removed and added again, might no longer be handled correctly. I haven't found such a case in the FreeBSD repository however. This is IHMO a bug in git, but it all hinges on semantics like list of parents vs. set of parents and how you define a hash on a set of objects that have no natural order.
* Revert "Remove the branch copy heuristic"Torgny Nyblom2012-11-261-0/+12
| | | | This reverts commit c0187417902b10698135727d911ab9018f4941eb.
* Merge commit 'refs/merge-requests/17' of gitorious.org:svn2git/svn2git into ↵Torgny Nyblom2012-11-231-7/+7
|\ | | | | | | mr/17
| * Match rules for files below a recursionSebastian Dörner2012-07-151-7/+7
| |
* | Merge commit 'refs/merge-requests/20' of gitorious.org:svn2git/svn2git into ↵Torgny Nyblom2012-11-234-18/+32
|\ \ | | | | | | | | | mr/20
| * | Set marks on notes, so fast-load picks up from previous state.Daniel Hagerty2012-10-071-1/+12
| | | | | | | | | | | | This should fix the notes upon successive, incremental conversions.
| * | Remove the branch copy heuristicUlrich Spörlein2012-09-191-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The FreeBSD project has a different approach to branches than the standard SVN or GIT models of how branches should work. An MFC from head/ to stable/8 is a cherry-pick in git and should never result in a merge commit. Sadly, this means that "IFCs" from head/ to project/foo also no longer are merge commits, though they really are ... Reported by: Ryan Stone <rysto32@gmail.com>
| * | Fix timestamps of notes to adhere to git standards by using +0000Ulrich Spörlein2012-05-121-1/+1
| | | | | | | | | | | | instead of -0000.
| * | Allow user-overriding of default email domainUlrich Spörlein2012-05-113-4/+19
| |/ | | | | | | | | | | | | | | | | | | | | | | Lazy projects where svn user X has email X@project.org don't need to compile (and update) an identity-map for rolling conversions. This can be mixed with a real identity-map, so only misses in the map will have the user then show up as X@project.org Also change the defaults somewhat. I don't like the NFS reserved username nobody to show up in SVN or git logs, but am keeping that for now.
* | Revert "Do not initialize master branch if branches were specified in the ↵Torgny Nyblom2012-08-211-3/+2
| | | | | | | | | | | | ruleset." This reverts commit 2ce7467917ef046dd9abfb1eb5464cd1ee7c7726.
* | Merge commit 'refs/merge-requests/13' of git://gitorious.org/svn2git/svn2git ↵Torgny Nyblom2012-08-212-3/+7
|\ \ | | | | | | | | | into merge-requests/13
| * | Do not initialize master branch if branches were specified in the ruleset.Modestas Vainius2011-04-241-2/+3
| | |
| * | Initialize branches specified in the create repository ruleset.Modestas Vainius2011-04-241-1/+1
| | | | | | | | | | | | | | | Otherwise, what's the point of that directive. Sometimes repository does not start from the master branch.
| * | Do not recurse() into the svn path unless it is an existing directory.Modestas Vainius2011-04-241-0/+3
| | | | | | | | | | | | Otherwise "action recurse" may fail on files or something else unknown.
* | | Merge commit 'refs/merge-requests/16' of git://gitorious.org/svn2git/svn2git ↵Torgny Nyblom2012-08-211-4/+10
|\ \ \ | | | | | | | | | | | | into merge-requests/16
| * | | Fixed git-svn authors map compatiblity. SVN is able to use committer/author ↵Florian Zumkeller-Quast2012-06-131-4/+10
| | |/ | |/| | | | | | | names with whitespaces inside. In this case, the git-svn author map is the better format. The first whitespace is not a good identifier as separator but the first ' = ' sequence is. Changed the behaviour to fix this.
* | | Prefix rules should keep spaces if they are part of the ruleManuel Naranjo2012-08-071-1/+1
|/ / | | | | | | | | | | | | | | This patch fixes a small bug with prefix rules where a prefix like: prefix I\ Am\ A\ Very\ Ugly\ Path/ will not match as the match was made against \S and not .* making the spaces not part of the match. Signed-off-by: Manuel Naranjo <manuel@evolution.com>
* | Remove stray backslash in source code.Nicolás Alvarez2012-04-171-1/+1
| | | | | | | | It completely screws up KDevelop's highlighting...
* | Properly expand multiple variables in the same line.Modestas Vainius2011-05-281-1/+1
| | | | | | | | | | | | | | When were two or more different variables in the same line, ruleparser used to expand the first one and replace *all* variables (since all variables are matches of variableLine regexp) with that expanded value. The corrent way is to replace that exact variable reference with the expanded value.
* | Merge commit 'refs/merge-requests/14' of gitorious.org:svn2git/svn2git into ↵Torgny Nyblom2011-05-083-3/+90
|\ \ | | | | | | | | | merge-requests/14
| * | Add support for adding svn commit info metadata as git notes.Modestas Vainius2011-04-243-3/+90
| |/ | | | | | | | | | | The patch add --add-metadata-notes command line option which is similar to --add-metadata except rather embedding svn commit info into the commit message, it is added as a note for the respective commit.
* | Merge commit 'refs/merge-requests/12' of git://gitorious.org/svn2git/svn2git ↵Torgny Nyblom2011-05-083-0/+77
|\ \ | | | | | | | | | | | | | | | | | | into merge-requests/12 Conflicts: src/ruleparser.cpp
| * | Support substitutions for repository/branch names.Modestas Vainius2011-04-243-0/+77
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for 's///' style substitutions for the repository/branch names in the match rulesets. Useful when e.g. eliminating characters not supported in git branch names. Syntax: match /... repository some_repo substitute repository s/pattern/replacement/ branch some_branch substitute branch s/pattern/replacement/ end match
* | Support 'description' field in the create repository rule.Modestas Vainius2011-04-243-0/+14
|/ | | | Its value is used to fill in repository/description file used by gitweb.
* Use +0000 instead of -0000 for timezone indicator in timestamps.Nicolás Alvarez2011-04-181-2/+2
| | | | | | Git seems to always output +0000, so when filter-branching, every single commit changes hash because dates are changed from - to +0.
* Add support for default values in variable substitutions.Nicolás Alvarez2011-04-111-4/+12
| | | | | | If there is no variable 'foo' set, ${foo} exits with a fatal error. With this patch, you can use ${foo|sometext}, which will substitute to 'sometext' if the variable 'foo' isn't set. The default text may be empty.
* Limit variable names to letters, numbers and underscores.Nicolás Alvarez2011-04-111-2/+4
| | | | | | | The parser used to allow any non-whitespace character, which could cause problems in practice. For example, you could create a variable with } or = in the name, or a character we may want to use in a syntax extension later.
* Save deleted branches in a visible namespaceSebastian Pipping2011-04-081-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | - The branch is first created properly and then deleted (line "progress SVN r77 branch config-header = :0 # delete") - Jehan's post-1.0.3 commit 584005f2e26149282aa12c4a0367d250caaf3918 writes a backup of the branches latest ref to refs/backup/ on deletion. Many thanks for that commit! However, in my opinion the problem with the current code is that it makes it much too easy to lose history during the conversion to Git. Without a tag or branch pointing to it the commits will fall off easily, especially if people use "git clone" on the bare Git repository created by svn2git. It would be safer and useful to create visible tags for this, e.g. refs/tags/branch-bugfix17-deleted. My attached patch changes Jehan's code to do just that. Please consider application - this patch really matters to me. If you'd rather have both a ref in refs/backup/ and in refs/tags/ or require a command line option for it I can adjust the patch for you. Thanks for listening,
* Create backup reference before deletion of the original branchJehan Bing2011-03-211-3/+4
| | | | | | Ensure that the backup reference is created before deleting the original branch. As it was, the deletion was executed earlier causing the backup reference to point to a non-existing branch so was not created.
* Remove unnecessary const casts.Nicolás Alvarez2011-03-161-4/+4
|
* Commit branch creation when requested and not on next transaction commitTorgny Nyblom2011-02-071-1/+3
| | | | | | | Branches was created by adding the command to a list, this list was then written to git when the next transaction was committed. This had the side effect that if the branch creation was the last thing the branch was never created.
* Fix encoding of author names.Nicolás Alvarez2011-01-291-0/+1
| | | | | | Author names were being properly passed through fromUtf8(), but then sent to a QTextStream using the system's locale. This patch forces the text stream to always use UTF-8.
* Support ranges in the revisions fileTorgny Nyblom2011-01-171-10/+34
|
* Delay transaction creation untill usage.Torgny Nyblom2011-01-161-8/+8
| | | | | This might fix the issue with an extra empty diff commit before all tags.
* Print how we were invokedTorgny Nyblom2011-01-151-0/+4
|
* Only print warning if it appliesTorgny Nyblom2011-01-151-1/+1
|
* Fix serious performance regression.Nicolás Alvarez2010-12-231-0/+3
| | | | | | | In Repository::commit, don't call startFastImport() if we have nothing to write to the fastImport stream. startFastImport() may start new git-fast-import processes if they were previously killed, so it may be extremely slow to call it frequently if it's not necessary.
* Add option for using the real content of an SVN branch when creating aTorgny Nyblom2010-12-212-0/+16
| | | | new branch instead of using the contents of the git "from" branch.
* Fix the --version optionTorgny Nyblom2010-12-212-0/+12
| | | | | When supplying --version the git commit that was used to create the version should be printed to stdout.
* Make sure that there are merges recorded before trying to read the last oneTorgny Nyblom2010-12-211-1/+1
|
* Try and fix cvs2svn multiple merge points for branches and tags.Torgny Nyblom2010-12-211-19/+27
| | | | Might still need some logic for detecting the correct from branch.
* Make the tagging commands visible in the gitlog aswellTorgny Nyblom2010-12-201-6/+6
|
* Only fetch revision properties once per revisionTorgny Nyblom2010-12-161-1/+6
|
* Only call startFastImport when neededTorgny Nyblom2010-12-161-1/+1
|
* Be more clear about what are warningsTorgny Nyblom2010-12-164-22/+22
|