mirror of
				https://github.com/frej/fast-export.git
				synced 2025-10-31 16:35:48 +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
						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