Commit Graph

491 Commits

Author SHA1 Message Date
Rocco Rutte
469d4f3305 hg2git.py: Disable parsing Signef-off-by lines and add -s to enable
IMHO it's highly unusual to have these lines in hg projects but who
knows. As it's slow to parse these types of lines (with regex), it's
disabled by default and the 'author' command of git-fast-import isn't
used at all.

It can be enabled by giving the -s switch to hg2git.sh.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-12 08:00:18 +00:00
Rocco Rutte
045eea436c Basic support for command line options in hg2git.py
Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-12 07:33:40 +00:00
Simon Hausmann
e15f1d8964 Make the caching official, sort of :) 2007-03-10 21:30:24 +01:00
Simon Hausmann
8be48137ae less false integrations 2007-03-10 21:23:49 +01:00
Simon Hausmann
c78fd1b668 More work on merge detection 2007-03-10 17:46:49 +01:00
Rocco Rutte
2030a3a736 Rename README.txt to hg2git.txt
This is to avoid naming clashes since I'm more or less about to merge
hg2git into fast-export.git at repo.or.cz.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-10 14:29:49 +00:00
Rocco Rutte
af3810ae2f Only attempt to verify heads hg has, too
In the git repo there may be any number branches that are not hg
imported branches, so it doesn't make sense to print warnings when a
non-hg head isn't at what it was last time.

Now we get a list of branchtags hg has and only verify these.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-10 14:28:45 +00:00
Simon Hausmann
1dcff16b12 Cleanups and preparations for true branch merge detection 2007-03-10 11:46:26 +01:00
Simon Hausmann
cd02317d67 Cleanups 2007-03-10 10:53:07 +01:00
Simon Hausmann
1e602ee4d9 make the debug cache configurable 2007-03-10 10:25:34 +01:00
Simon Hausmann
852fcfea75 Haha, of course the extension should be .py! 2007-03-10 09:49:19 +01:00
Rocco Rutte
796fa5f4cb hg2git.py: Add support for extracting authorship from Signed-off-by lines
Unfortunately, it's not configurable yet (read: cannot be disabled) as
it may take some time to match against regex all the time (especially
from some initial import).

This also enables cleaning up usernames by stripping silly leading and
trailing chars like '"' (which is the only one supported ATM).

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-09 12:07:08 +00:00
Rocco Rutte
3198560016 hg2git.py: Add support for user-defined hg author -> git author mapping
The mapping is a python dictionary given to the hg2git() function. This
isn't extremely useful as there's no option passing from hg2git.sh to
hg2git.py (yet).

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-09 11:09:57 +00:00
Simon Hausmann
aa04b48cab fix --known-branches support 2007-03-08 21:34:40 +01:00
Simon Hausmann
f2c445efed unstable work in progress for better main branch detection 2007-03-08 21:27:59 +01:00
Rocco Rutte
ec2aceeacb Add Todo section to readme
Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-08 11:46:41 +00:00
Rocco Rutte
85f0d9c881 hg2git.py: Refactor main code into hg2git() function
Now this can even be used as a module from other python scripts by
simply calling the hg2git() function.

Except some config values nobody really ever wants to change, it's even
save to run several hg2git() functions in parallel as no global vars or
the like are used by intention (but it makes the code uglier).

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-08 11:21:21 +00:00
Rocco Rutte
61bb1cb707 hg2git.sh: Try to get last hg repo url from state file
As one usually mirrors a git repo based on the same hg repo, it's
annoying having to specify the hg repo url all the time. Since we
intentionally stored the url in the state file already, use in the
shell wrapper and default to it.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-08 11:16:28 +00:00
Rocco Rutte
e2edb79bc2 Add note about SHA1 stability to readme
Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-08 10:12:01 +00:00
Rocco Rutte
69e2d5df9b Add some degign notes to readme
Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-08 09:37:41 +00:00
Rocco Rutte
dbac8741df Don't use checkpoint
As git-fast-import already generates at least one pack per run, don't
even further split these up on a (default) 1k changeset boundary. Also
rework the documentation on that one a little.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-08 09:37:23 +00:00
Simon Hausmann
fbaef94e4e work with newer git versions 2007-03-07 19:58:54 +01:00
Rocco Rutte
2eba1c38ec Add some simpe readme with legal stuff, usage and some notes
Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-07 15:10:39 +00:00
Rocco Rutte
c002051c82 Distinct between added, changed and removed files for UI output
To git-fast-import(1) we feed in changed and added files completely, so
thers's no real difference except UI output (potentially for debugging).

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-07 11:38:56 +00:00
Rocco Rutte
799a4d8682 Only attempt to export tags in our input range
This prints much less noise and potentially makes git-fast-import(1)
less confused.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-07 11:33:03 +00:00
Rocco Rutte
cdb66d3298 Add --quiet option passed to git-fast-import(1)
Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-07 11:24:59 +00:00
Rocco Rutte
2b319f9de4 Don't restore checkpoint count from cache
It doesn't make sense as each run of git-fast-import starts a new pack
anyways.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-07 11:06:34 +00:00
Rocco Rutte
8d433b85c2 Speedup: Use manifest and compare checksums to detect changes
Instead of feeding in everything or only something and getting merges
wrong, build up a list of changed (incl. added) and deleted files by

  1) comparing manifest (deleted, added)
  2) comparing checksums if file is present in parent and child (change)

The hg-crew and mutt imports now go in <15 minutes and md5 sums match.

Thanks to Theodore Tso for the hint.

While at it, fix a regression that upon incremental import start we
always merged a branch plus initializing it. A single test showed that
the new detection get starting off from a merge commit right, too.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
2007-03-07 01:52:58 +00:00
Rocco Rutte
9ebd965f72 Link and not merge first branch of incremental import 2007-03-06 22:11:10 +00:00
Rocco Rutte
b702707afc Provide two versions of getting changes per manifest
As suggested on #mercurial, filectxs() may be faster
than calling filectx() per file.
2007-03-06 19:51:36 +00:00
Rocco Rutte
95e06a1f56 Fix wrapper script for branches with slahes
Use git-branch(1) instead of ls(1) for getting branch names.
2007-03-06 19:51:15 +00:00
Rocco Rutte
9832035614 Initial import
This is the initial import of 'hg2git' being a converter which feeds a
hg repository into git-fast-import(1).
2007-03-06 17:00:25 +00:00
Simon Hausmann
3ac8ff6810 silent for real this time 2007-02-22 10:20:53 +01:00
Simon Hausmann
6fd3a6b6a2 Another silent fix 2007-02-22 09:22:36 +01:00
Simon Hausmann
21dc7ef85d blind: added support for --silent 2007-02-22 09:03:39 +01:00
Simon Hausmann
7b6a30fe2a another todo item 2007-02-21 17:51:07 +01:00
Simon Hausmann
8d2196e3e9 hotfix for branchless imports 2007-02-18 01:18:22 +10:00
Simon Hausmann
751eb34307 Run also with older versions of Python 2007-02-15 02:16:14 +10:00
Simon Hausmann
e8a7be339b this is very much in progress, but at least the branch importing works a little bit
better now
2007-02-14 17:13:17 +01:00
Simon Hausmann
116ea75937 try merging based on p4 changes 2007-02-12 22:05:21 +01:00
Simon Hausmann
72259d882f set marks for fast-import 2007-02-12 21:56:46 +01:00
Simon Hausmann
c79b8b7d0b don't write out too many merges 2007-02-12 21:44:02 +01:00
Simon Hausmann
cfc3ed814a more work on branch import. my testcase works at least :) 2007-02-12 21:41:45 +01:00
Simon Hausmann
e85e16c72e start experimental work on branch detection 2007-02-12 21:04:59 +01:00
Simon Hausmann
70629bc031 cleanups 2007-02-12 20:28:58 +01:00
Simon Hausmann
d6aa805bc8 get rid of unused variable 2007-02-11 21:35:34 +01:00
Simon Hausmann
00f20aa0e5 create lightweight tags instead of full tag objects for the incremental import 2007-02-11 18:04:39 +01:00
Simon Hausmann
55cb3cb611 a little helper script to prune stale p4 import tags 2007-02-10 10:26:03 +01:00
Simon Hausmann
fbb9544c5f changed the default branch to master 2007-02-10 10:05:51 +01:00
Simon Hausmann
fcbd332684 avoid the excessive use of tags and just keep one p4 tag around 2007-02-10 10:05:29 +01:00