mirror of
https://github.com/frej/fast-export.git
synced 2025-11-01 00:45:47 +01:00
hg-fast-export: add option to track remote branches under a custom namespace
Add -o, --origin <name> to allow user to set a namespace used when importing remote branches. Signed-off-by: Fabrizio Chiarello <ponch@autistici.org>
This commit is contained in:
committed by
Frej Drejhammar
parent
fdbb1decaa
commit
a984e233c2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
from mercurial import repo,hg,cmdutil,util,ui,revlog,node
|
from mercurial import repo,hg,cmdutil,util,ui,revlog,node
|
||||||
from hg2git import setup_repo,fixup_user,get_branch,get_changeset
|
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 tempfile import mkstemp
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
import re
|
import re
|
||||||
@@ -383,6 +383,8 @@ if __name__=='__main__':
|
|||||||
default=False,help="Ignore validation errors by force")
|
default=False,help="Ignore validation errors by force")
|
||||||
parser.add_option("-M","--default-branch",dest="default_branch",
|
parser.add_option("-M","--default-branch",dest="default_branch",
|
||||||
help="Set the 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()
|
(options,args)=parser.parse_args()
|
||||||
|
|
||||||
@@ -401,5 +403,8 @@ if __name__=='__main__':
|
|||||||
if options.default_branch!=None:
|
if options.default_branch!=None:
|
||||||
set_default_branch(options.default_branch)
|
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,
|
sys.exit(hg2git(options.repourl,m,options.marksfile,options.headsfile,
|
||||||
options.statusfile,authors=a,sob=options.sob,force=options.force))
|
options.statusfile,authors=a,sob=options.sob,force=options.force))
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ SFX_STATE="state"
|
|||||||
QUIET=""
|
QUIET=""
|
||||||
PYTHON=${PYTHON:-python}
|
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>
|
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,
|
If <repo> is omitted, use last hg repository as obtained from state file,
|
||||||
GIT_DIR/$PFX-$SFX_STATE by default.
|
GIT_DIR/$PFX-$SFX_STATE by default.
|
||||||
@@ -26,7 +26,8 @@ Options:
|
|||||||
-A Read author map from file
|
-A Read author map from file
|
||||||
(Same as in git-svnimport(1) and git-cvsimport(1))
|
(Same as in git-svnimport(1) and git-cvsimport(1))
|
||||||
-r Mercurial repository to import
|
-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"
|
. "$(git --exec-path)/git-sh-setup"
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import sys
|
|||||||
|
|
||||||
# default git branch name
|
# default git branch name
|
||||||
cfg_master='master'
|
cfg_master='master'
|
||||||
|
# default origin name
|
||||||
|
origin_name=''
|
||||||
# silly regex to see if user field has email address
|
# silly regex to see if user field has email address
|
||||||
user_re=re.compile('([^<]+) (<[^>]+>)$')
|
user_re=re.compile('([^<]+) (<[^>]+>)$')
|
||||||
# silly regex to clean out user names
|
# silly regex to clean out user names
|
||||||
@@ -19,6 +21,10 @@ def set_default_branch(name):
|
|||||||
global cfg_master
|
global cfg_master
|
||||||
cfg_master = name
|
cfg_master = name
|
||||||
|
|
||||||
|
def set_origin_name(name):
|
||||||
|
global origin_name
|
||||||
|
origin_name = name
|
||||||
|
|
||||||
def setup_repo(url):
|
def setup_repo(url):
|
||||||
myui=ui.ui(interactive=False)
|
myui=ui.ui(interactive=False)
|
||||||
return myui,hg.repository(myui,url)
|
return myui,hg.repository(myui,url)
|
||||||
@@ -53,6 +59,8 @@ def get_branch(name):
|
|||||||
# other CVS imports may need it, too
|
# other CVS imports may need it, too
|
||||||
if name=='HEAD' or name=='default' or name=='':
|
if name=='HEAD' or name=='default' or name=='':
|
||||||
name=cfg_master
|
name=cfg_master
|
||||||
|
if origin_name:
|
||||||
|
return origin_name + '/' + name
|
||||||
return name
|
return name
|
||||||
|
|
||||||
def get_changeset(ui,repo,revision,authors={}):
|
def get_changeset(ui,repo,revision,authors={}):
|
||||||
|
|||||||
Reference in New Issue
Block a user