python/fast-export.git
18 years agohg2git.py: Display our max revision as progress, not tip
Rocco Rutte [Mon, 12 Mar 2007 08:12:08 +0000 (08:12 +0000)]
hg2git.py: Display our max revision as progress, not tip

Displaying tip doesn't make sense when we have some max given with -m/--max.

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
18 years agohg2git.py: Disable parsing Signef-off-by lines and add -s to enable
Rocco Rutte [Mon, 12 Mar 2007 08:00:18 +0000 (08:00 +0000)]
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>
18 years agoBasic support for command line options in hg2git.py
Rocco Rutte [Mon, 12 Mar 2007 07:33:40 +0000 (07:33 +0000)]
Basic support for command line options in hg2git.py

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
18 years agoRename README.txt to hg2git.txt
Rocco Rutte [Sat, 10 Mar 2007 14:29:49 +0000 (14:29 +0000)]
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>
18 years agoOnly attempt to verify heads hg has, too
Rocco Rutte [Sat, 10 Mar 2007 14:28:45 +0000 (14:28 +0000)]
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>
18 years agohg2git.py: Add support for extracting authorship from Signed-off-by lines
Rocco Rutte [Fri, 9 Mar 2007 12:07:08 +0000 (12:07 +0000)]
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>
18 years agohg2git.py: Add support for user-defined hg author -> git author mapping
Rocco Rutte [Fri, 9 Mar 2007 11:09:57 +0000 (11:09 +0000)]
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>
18 years agoAdd Todo section to readme
Rocco Rutte [Thu, 8 Mar 2007 11:46:41 +0000 (11:46 +0000)]
Add Todo section to readme

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
18 years agohg2git.py: Refactor main code into hg2git() function
Rocco Rutte [Thu, 8 Mar 2007 11:21:21 +0000 (11:21 +0000)]
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>
18 years agohg2git.sh: Try to get last hg repo url from state file
Rocco Rutte [Thu, 8 Mar 2007 11:16:28 +0000 (11:16 +0000)]
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>
18 years agoAdd note about SHA1 stability to readme
Rocco Rutte [Thu, 8 Mar 2007 10:12:01 +0000 (10:12 +0000)]
Add note about SHA1 stability to readme

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
18 years agoAdd some degign notes to readme
Rocco Rutte [Thu, 8 Mar 2007 09:37:41 +0000 (09:37 +0000)]
Add some degign notes to readme

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
18 years agoDon't use checkpoint
Rocco Rutte [Thu, 8 Mar 2007 09:37:23 +0000 (09:37 +0000)]
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>
18 years agoAdd some simpe readme with legal stuff, usage and some notes
Rocco Rutte [Wed, 7 Mar 2007 15:10:39 +0000 (15:10 +0000)]
Add some simpe readme with legal stuff, usage and some notes

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
18 years agoDistinct between added, changed and removed files for UI output
Rocco Rutte [Wed, 7 Mar 2007 11:38:56 +0000 (11:38 +0000)]
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>
18 years agoOnly attempt to export tags in our input range
Rocco Rutte [Wed, 7 Mar 2007 11:33:03 +0000 (11:33 +0000)]
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>
18 years agoAdd --quiet option passed to git-fast-import(1)
Rocco Rutte [Wed, 7 Mar 2007 11:24:59 +0000 (11:24 +0000)]
Add --quiet option passed to git-fast-import(1)

Signed-off-by: Rocco Rutte <pdmef@gmx.net>
18 years agoDon't restore checkpoint count from cache
Rocco Rutte [Wed, 7 Mar 2007 11:06:34 +0000 (11:06 +0000)]
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>
18 years agoSpeedup: Use manifest and compare checksums to detect changes
Rocco Rutte [Wed, 7 Mar 2007 01:52:58 +0000 (01:52 +0000)]
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>
18 years agoLink and not merge first branch of incremental import
Rocco Rutte [Tue, 6 Mar 2007 22:11:10 +0000 (22:11 +0000)]
Link and not merge first branch of incremental import

18 years agoProvide two versions of getting changes per manifest
Rocco Rutte [Tue, 6 Mar 2007 19:47:51 +0000 (19:47 +0000)]
Provide two versions of getting changes per manifest

As suggested on #mercurial, filectxs() may be faster
than calling filectx() per file.

18 years agoFix wrapper script for branches with slahes
Rocco Rutte [Tue, 6 Mar 2007 19:46:50 +0000 (19:46 +0000)]
Fix wrapper script for branches with slahes

Use git-branch(1) instead of ls(1) for getting branch names.

18 years agoInitial import
Rocco Rutte [Tue, 6 Mar 2007 17:00:25 +0000 (17:00 +0000)]
Initial import

This is the initial import of 'hg2git' being a converter which feeds a
hg repository into git-fast-import(1).