aboutsummaryrefslogtreecommitdiffstats
path: root/src/repository.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move SVN revision to fast-import mark mapping to the per-branch datastructure.Raja R Harinath2010-07-051-26/+31
| | | | | | A single SVN revision can affect multiple branches in the same repository. Keeping track of only one mark per revision loses information and makes the history incorrect.
* Properly implement the 16-parent limit, rather than conservatively stopping atRaja R Harinath2010-07-051-8/+8
| | | | 15 commit parents.
* Infer some copy sources as additional parentsRaja R Harinath2010-07-011-9/+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.
* Add --force to 'git fast-import' command-lineRaja R Harinath2010-06-211-1/+1
| | | | | | | | | | | | | 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.
* Fix type errorRaja R Harinath2010-06-211-1/+1
|
* Improve progess logRaja R Harinath2010-06-201-12/+24
| | | | | | | | | | | | | | | | | | | 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>);
* Track commits per-branchRaja R Harinath2010-06-201-12/+16
| | | | | | | | | | | | 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.
* Improve determination of branch pointRaja R Harinath2010-06-191-5/+8
| | | | | | | | | | | | 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.
* Store marks to file so that the ProcessCache system worksRaja R Harinath2010-06-191-2/+10
| | | | | | | | | | 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.
* Fix typoRaja R Harinath2010-06-191-1/+1
|
* Initialize lastmarkRaja R Harinath2010-06-191-1/+1
| | | | Ensure that marks start at 1, now that they're visible in the logs
* Try and branch from the correct svn revision rather then the last one.Torgny Nyblom2010-05-041-9/+21
|
* Print more info on what is exported whereUlrich Spörlein2010-04-291-3/+3
|
* Move slash cleaning to a more generic placeTorgny Nyblom2010-04-141-1/+4
|
* Add commandline option for when to flush the commit queue.Torgny Nyblom2010-03-251-1/+1
|
* 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-21/+21
|
* Replace options with the one from vng and use its options for better usabilityThomas Zander2009-10-211-3/+3
|
* Create repos as we go.Thomas Zander2009-10-201-0/+12
| | | | | Instead of failing with an unhelpful error in fast-import we create the repositories we require to import into if they don't exist.
* Add support for annotated tagsThiago Macieira2009-06-081-1/+72
|
* Support Qt 4.3 tooThiago Macieira2009-02-201-0/+4
|
* Add a --no-metadata option to suppress the svn info in commit messages.Anders Kaseorg2009-01-081-1/+3
| | | | | Signed-off-by: Anders Kaseorg <andersk@mit.edu> Signed-off-by: Thiago Macieira <thiago@kde.org>
* Fix initialization of Repository::lastmark when creating a new transaction.Anders Kaseorg2009-01-081-1/+1
| | | | | Signed-off-by: Anders Kaseorg <andersk@mit.edu> Signed-off-by: Thiago Macieira <thiago@kde.org>
* Fix a bug when committing to two branches of the same repository in the same ↵Thiago Macieira2008-08-261-4/+6
| | | | SVN revision
* Store the modified files in git-fast-import format already.Thiago Macieira2008-08-241-15/+13
| | | | I don't know what went wrong, but importing KDE revision 296047 there was a mixup with the marks. So instead avoid the trouble and store the thing in in cooked format already
* Add a process cache to keep the number of processes under 100Thiago Macieira2008-08-231-0/+34
|
* General improvements and reload branches automatically when starting ↵Thiago Macieira2008-08-181-9/+18
| | | | git-fast-import
* Enhance the saving of repository data by adding a "checkpoint" command at ↵Thiago Macieira2008-08-181-1/+7
| | | | | | the end. Though I have the impression that this doesn't do much
* Initialize variableThiago Macieira2008-08-181-1/+1
|
* trim the newlinesThiago Macieira2008-08-161-1/+1
|
* Make it easier to do automatic branchingThiago Macieira2008-08-131-23/+13
|
* Auto create branchesThiago Macieira2008-08-131-2/+2
|
* Enhance error messageThiago Macieira2008-08-131-1/+1
|
* Try auto-creation of branchesThiago Macieira2008-08-131-2/+9
|
* Fix the double UTF-8 encoding of the author name. In hindsight I maybe ↵Thiago Macieira2007-12-281-2/+2
| | | | shouldn't have used QTextStream.
* Wait forever. Not very efficient, but works.Thiago Macieira2007-12-281-1/+1
|
* Fail if writing to the process failsThiago Macieira2007-12-281-4/+3
|
* Don't start the git-fast-import process twice. And make it log itsThiago Macieira2007-12-281-4/+10
| | | | | output to a file rather than garble the output of 10-15 process in stdout.
* write to disk every 10000 commits, not 9999 times each 10000 commitsThiago Macieira2007-12-271-1/+1
|
* checkpoint every now and thenThiago Macieira2007-12-261-0/+3
|
* Bugfix: don't forget the newline after the commit messageThiago Macieira2007-12-261-0/+1
|
* Don't crash when running in dry-modeThiago Macieira2007-12-251-1/+5
|
* Keep track of when a given branch was created insteadThiago Macieira2007-12-251-8/+6
|
* Add auto-recurse codeThiago Macieira2007-12-241-2/+5
|
* Append instead of overwriting the output file in dry-run modeThiago Macieira2007-12-241-1/+1
|
* s,/,_, in the output filenames in dry-run modeThiago Macieira2007-12-241-1/+3
|
* remove the source branch in the rulesThiago Macieira2007-12-241-4/+0
|
* Add support for branch creation on-the-flyThiago Macieira2007-12-241-0/+30
|
* Output dry-run data to a file, for analysis laterThiago Macieira2007-12-241-1/+2
|
* Allow one to have references to outside refs/headsThiago Macieira2007-12-241-3/+3
|