aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove comment about fast import process limit.distro/mgaColin Guthrie2014-06-161-1/+1
| | | | This is actually already implemented and has a 100 process limit.
* main: Load repository logs from the directories foundColin Guthrie2014-06-162-1/+56
|
* main: Whitespace (comments)Colin Guthrie2014-06-161-11/+11
|
* Add note about changelogColin Guthrie2014-05-301-1/+2
|
* Add Mageia README and rules for conversion.Colin Guthrie2014-05-292-0/+81
|
* Return after renaming a repo to prevent importing the empty commit.Colin Guthrie2014-05-291-0/+11
| | | | | | | | | This should be fine provided the cp did not also change files... If there was a way to find out if the change is a net null, that would be useful here. Also, as we only use tags for markrelease on master branch, we can ignore any cross repo tag copies as they will just clober the data we have already.
* Support repository renaming.Colin Guthrie2014-05-291-21/+59
| | | | | | | | | | | | | | | | | This allows us to svn mv the cauldron/PKG/current folder to a new name and have this copied over to git. It does not yet handle the case where subsequent commits to previous distros for the old name are magically moved over to the new name for the repo (which I think is the correct behaviour as noted on the sysadm mailing list) so some kind of rename mapping will have to be kept (if I ever implement resuming support, then this map will have to be dumped to a file and restored again about restart) Another problem is that the tags are apparently all squashed up due to the svn mv commit, but this should be handled via a simple return... after dealing with the repo rename (although some changes may get lost :( if this is not a straight copy (i.e. svn cp + changes in the same txn)
* Move the repo renaming to a method for convenience.Colin Guthrie2014-05-283-12/+36
| | | | This also renames log and marks files.
* Handle master branch deletion.Colin Guthrie2014-05-241-1/+24
| | | | | | | | | | | | | If the master branch is deleted, this typically means we are obsoleting our package. Rather than 'deal' with the branch deletion, simply rename the repository and then continue. We will likely have to deal with a later resurrection and also deal with package renames better too (e.g. one commit renames and resurrecting a specific package that was subsequently brought back from the dead) but this will be dealt with in a later commit.
* Copying files as merge points fails badly.Colin Guthrie2014-05-241-2/+2
| | | | | | | | In our case I svn cp'ed a file from mga3 updates to mga2. With this code in place, this caused a merge of mga3 and mga2 which made the output of mga2 git log very misleading (it had tags and commits from v195 of systemd even tho' we were only shipping v44 there). I don't think we'll lose anything by simply not merging here.
* Add ability to skip specific revisions to the command line.Colin Guthrie2014-05-241-0/+16
| | | | | | | | We have a couple revisions we want to skip globally but due to our automatic repository creation approach and the large number of branches, we don't want to configure rules that setup this kind of skipping. This is a handy way to skip Pascal's great oops moment :)
* Add the ability to autocreate repositories.Colin Guthrie2014-05-245-14/+48
| | | | | | | | | In Mageia, we have 13k+ packages and have very strict repo layout. Due to this we want to autocreate repositories when we import packages from subversion to git. This does not really support reloading and continuing etc. but hopefully that is sufficient for our import.
* 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
|