from mercurial import repo,hg,cmdutil,util,ui,revlog,node
from hg2git import setup_repo,fixup_user,get_branch,get_changeset
-from hg2git import load_cache,save_cache,get_git_sha1,set_default_branch
+from hg2git import load_cache,save_cache,get_git_sha1,set_default_branch,set_origin_name
from tempfile import mkstemp
from optparse import OptionParser
import re
default=False,help="Ignore validation errors by force")
parser.add_option("-M","--default-branch",dest="default_branch",
help="Set the default branch")
+ parser.add_option("-o","--origin",dest="origin_name",
+ help="use <name> as namespace to track upstream")
(options,args)=parser.parse_args()
if options.default_branch!=None:
set_default_branch(options.default_branch)
+ if options.origin_name!=None:
+ set_origin_name(options.origin_name)
+
sys.exit(hg2git(options.repourl,m,options.marksfile,options.headsfile,
options.statusfile,authors=a,sob=options.sob,force=options.force))
QUIET=""
PYTHON=${PYTHON:-python}
-USAGE="[--quiet] [-r <repo>] [-m <max>] [-s] [-A <file>] [-M <branch_name>]"
+USAGE="[--quiet] [-r <repo>] [-m <max>] [-s] [-A <file>] [-M <name>] [-o <name>]"
LONG_USAGE="Import hg repository <repo> up to either tip or <max>
If <repo> is omitted, use last hg repository as obtained from state file,
GIT_DIR/$PFX-$SFX_STATE by default.
-A Read author map from file
(Same as in git-svnimport(1) and git-cvsimport(1))
-r Mercurial repository to import
- -M Set the default branch name
+ -M Set the default branch name (default to 'master')
+ -o Use <name> as branch namespace to track upstream (eg 'origin')
"
. "$(git --exec-path)/git-sh-setup"
# default git branch name
cfg_master='master'
+# default origin name
+origin_name=''
# silly regex to see if user field has email address
user_re=re.compile('([^<]+) (<[^>]+>)$')
# silly regex to clean out user names
global cfg_master
cfg_master = name
+def set_origin_name(name):
+ global origin_name
+ origin_name = name
+
def setup_repo(url):
myui=ui.ui(interactive=False)
return myui,hg.repository(myui,url)
# other CVS imports may need it, too
if name=='HEAD' or name=='default' or name=='':
name=cfg_master
+ if origin_name:
+ return origin_name + '/' + name
return name
def get_changeset(ui,repo,revision,authors={}):