merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4' as 'third_party/git'
			
			
This commit is contained in:
		
						commit
						7ef0d62730
					
				
					 3629 changed files with 1139935 additions and 0 deletions
				
			
		
							
								
								
									
										4
									
								
								third_party/git/contrib/svn-fe/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								third_party/git/contrib/svn-fe/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| /*.xml | ||||
| /*.1 | ||||
| /*.html | ||||
| /svn-fe | ||||
							
								
								
									
										105
									
								
								third_party/git/contrib/svn-fe/Makefile
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								third_party/git/contrib/svn-fe/Makefile
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,105 @@ | |||
| all:: svn-fe$X | ||||
| 
 | ||||
| CC = cc | ||||
| RM = rm -f | ||||
| MV = mv | ||||
| 
 | ||||
| CFLAGS = -g -O2 -Wall | ||||
| LDFLAGS = | ||||
| EXTLIBS = -lz | ||||
| 
 | ||||
| include ../../config.mak.uname | ||||
| -include ../../config.mak.autogen | ||||
| -include ../../config.mak | ||||
| 
 | ||||
| ifeq ($(uname_S),Darwin) | ||||
| 	ifndef NO_FINK | ||||
| 		ifeq ($(shell test -d /sw/lib && echo y),y) | ||||
| 			CFLAGS += -I/sw/include | ||||
| 			LDFLAGS += -L/sw/lib | ||||
| 		endif | ||||
| 	endif | ||||
| 	ifndef NO_DARWIN_PORTS | ||||
| 		ifeq ($(shell test -d /opt/local/lib && echo y),y) | ||||
| 			CFLAGS += -I/opt/local/include | ||||
| 			LDFLAGS += -L/opt/local/lib | ||||
| 		endif | ||||
| 	endif | ||||
| endif | ||||
| 
 | ||||
| ifndef NO_OPENSSL | ||||
| 	EXTLIBS += -lssl | ||||
| 	ifdef NEEDS_CRYPTO_WITH_SSL | ||||
| 		EXTLIBS += -lcrypto | ||||
| 	endif | ||||
| endif | ||||
| 
 | ||||
| ifndef NO_PTHREADS | ||||
| 	CFLAGS += $(PTHREADS_CFLAGS) | ||||
| 	EXTLIBS += $(PTHREAD_LIBS) | ||||
| endif | ||||
| 
 | ||||
| ifdef HAVE_CLOCK_GETTIME | ||||
| 	CFLAGS += -DHAVE_CLOCK_GETTIME | ||||
| 	EXTLIBS += -lrt | ||||
| endif | ||||
| 
 | ||||
| ifdef NEEDS_LIBICONV | ||||
| 	EXTLIBS += -liconv | ||||
| endif | ||||
| 
 | ||||
| GIT_LIB = ../../libgit.a | ||||
| VCSSVN_LIB = ../../vcs-svn/lib.a | ||||
| XDIFF_LIB = ../../xdiff/lib.a | ||||
| 
 | ||||
| LIBS = $(VCSSVN_LIB) $(GIT_LIB) $(XDIFF_LIB) | ||||
| 
 | ||||
| QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir | ||||
| QUIET_SUBDIR1 = | ||||
| 
 | ||||
| ifneq ($(findstring $(MAKEFLAGS),w),w) | ||||
| PRINT_DIR = --no-print-directory | ||||
| else # "make -w"
 | ||||
| NO_SUBDIR = : | ||||
| endif | ||||
| 
 | ||||
| ifneq ($(findstring $(MAKEFLAGS),s),s) | ||||
| ifndef V | ||||
| 	QUIET_CC      = @echo '   ' CC $@; | ||||
| 	QUIET_LINK    = @echo '   ' LINK $@; | ||||
| 	QUIET_SUBDIR0 = +@subdir= | ||||
| 	QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
 | ||||
| 	                $(MAKE) $(PRINT_DIR) -C $$subdir | ||||
| endif | ||||
| endif | ||||
| 
 | ||||
| svn-fe$X: svn-fe.o $(VCSSVN_LIB) $(XDIFF_LIB) $(GIT_LIB) | ||||
| 	$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(EXTLIBS) -o $@ svn-fe.o $(LIBS) | ||||
| 
 | ||||
| svn-fe.o: svn-fe.c ../../vcs-svn/svndump.h | ||||
| 	$(QUIET_CC)$(CC) $(CFLAGS) -I../../vcs-svn -o $*.o -c $< | ||||
| 
 | ||||
| svn-fe.html: svn-fe.txt | ||||
| 	$(QUIET_SUBDIR0)../../Documentation $(QUIET_SUBDIR1) \
 | ||||
| 		MAN_TXT=../contrib/svn-fe/svn-fe.txt \
 | ||||
| 		../contrib/svn-fe/$@ | ||||
| 
 | ||||
| svn-fe.1: svn-fe.txt | ||||
| 	$(QUIET_SUBDIR0)../../Documentation $(QUIET_SUBDIR1) \
 | ||||
| 		MAN_TXT=../contrib/svn-fe/svn-fe.txt \
 | ||||
| 		../contrib/svn-fe/$@ | ||||
| 	$(MV) ../../Documentation/svn-fe.1 . | ||||
| 
 | ||||
| ../../vcs-svn/lib.a: FORCE | ||||
| 	$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) vcs-svn/lib.a | ||||
| 
 | ||||
| ../../xdiff/lib.a: FORCE | ||||
| 	$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) xdiff/lib.a | ||||
| 
 | ||||
| ../../libgit.a: FORCE | ||||
| 	$(QUIET_SUBDIR0)../.. $(QUIET_SUBDIR1) libgit.a | ||||
| 
 | ||||
| clean: | ||||
| 	$(RM) svn-fe$X svn-fe.o svn-fe.html svn-fe.xml svn-fe.1 | ||||
| 
 | ||||
| .PHONY: all clean FORCE | ||||
							
								
								
									
										18
									
								
								third_party/git/contrib/svn-fe/svn-fe.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								third_party/git/contrib/svn-fe/svn-fe.c
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| /*
 | ||||
|  * This file is in the public domain. | ||||
|  * You may freely use, modify, distribute, and relicense it. | ||||
|  */ | ||||
| 
 | ||||
| #include <stdlib.h> | ||||
| #include "svndump.h" | ||||
| 
 | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
| 	if (svndump_init(NULL)) | ||||
| 		return 1; | ||||
| 	svndump_read((argc > 1) ? argv[1] : NULL, "refs/heads/master", | ||||
| 			"refs/notes/svn/revs"); | ||||
| 	svndump_deinit(); | ||||
| 	svndump_reset(); | ||||
| 	return 0; | ||||
| } | ||||
							
								
								
									
										71
									
								
								third_party/git/contrib/svn-fe/svn-fe.txt
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								third_party/git/contrib/svn-fe/svn-fe.txt
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,71 @@ | |||
| svn-fe(1) | ||||
| ========= | ||||
| 
 | ||||
| NAME | ||||
| ---- | ||||
| svn-fe - convert an SVN "dumpfile" to a fast-import stream | ||||
| 
 | ||||
| SYNOPSIS | ||||
| -------- | ||||
| [verse] | ||||
| mkfifo backchannel && | ||||
| svnadmin dump --deltas REPO | | ||||
| 	svn-fe [url] 3<backchannel | | ||||
| 	git fast-import --cat-blob-fd=3 3>backchannel | ||||
| 
 | ||||
| DESCRIPTION | ||||
| ----------- | ||||
| 
 | ||||
| Converts a Subversion dumpfile into input suitable for | ||||
| git-fast-import(1) and similar importers. REPO is a path to a | ||||
| Subversion repository mirrored on the local disk. Remote Subversion | ||||
| repositories can be mirrored on local disk using the `svnsync` | ||||
| command. | ||||
| 
 | ||||
| Note: this tool is very young.  The details of its commandline | ||||
| interface may change in backward incompatible ways. | ||||
| 
 | ||||
| INPUT FORMAT | ||||
| ------------ | ||||
| Subversion's repository dump format is documented in full in | ||||
| `notes/dump-load-format.txt` from the Subversion source tree. | ||||
| Files in this format can be generated using the 'svnadmin dump' or | ||||
| 'svk admin dump' command. | ||||
| 
 | ||||
| OUTPUT FORMAT | ||||
| ------------- | ||||
| The fast-import format is documented by the git-fast-import(1) | ||||
| manual page. | ||||
| 
 | ||||
| NOTES | ||||
| ----- | ||||
| Subversion dumps do not record a separate author and committer for | ||||
| each revision, nor do they record a separate display name and email | ||||
| address for each author.  Like git-svn(1), 'svn-fe' will use the name | ||||
| 
 | ||||
| --------- | ||||
| user <user@UUID> | ||||
| --------- | ||||
| 
 | ||||
| as committer, where 'user' is the value of the `svn:author` property | ||||
| and 'UUID' the repository's identifier. | ||||
| 
 | ||||
| To support incremental imports, 'svn-fe' puts a `git-svn-id` line at | ||||
| the end of each commit log message if passed a URL on the command | ||||
| line.  This line has the form `git-svn-id: URL@REVNO UUID`. | ||||
| 
 | ||||
| The resulting repository will generally require further processing | ||||
| to put each project in its own repository and to separate the history | ||||
| of each branch.  The 'git filter-branch --subdirectory-filter' command | ||||
| may be useful for this purpose. | ||||
| 
 | ||||
| BUGS | ||||
| ---- | ||||
| Empty directories and unknown properties are silently discarded. | ||||
| 
 | ||||
| The exit status does not reflect whether an error was detected. | ||||
| 
 | ||||
| SEE ALSO | ||||
| -------- | ||||
| git-svn(1), svn2git(1), svk(1), git-filter-branch(1), git-fast-import(1), | ||||
| https://svn.apache.org/repos/asf/subversion/trunk/notes/dump-load-format.txt | ||||
							
								
								
									
										68
									
								
								third_party/git/contrib/svn-fe/svnrdump_sim.py
									
										
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										68
									
								
								third_party/git/contrib/svn-fe/svnrdump_sim.py
									
										
									
									
										vendored
									
									
										Executable file
									
								
							|  | @ -0,0 +1,68 @@ | |||
| #!/usr/bin/python | ||||
| """ | ||||
| Simulates svnrdump by replaying an existing dump from a file, taking care | ||||
| of the specified revision range. | ||||
| To simulate incremental imports the environment variable SVNRMAX can be set | ||||
| to the highest revision that should be available. | ||||
| """ | ||||
| import sys | ||||
| import os | ||||
| 
 | ||||
| if sys.hexversion < 0x02040000: | ||||
|     # The limiter is the ValueError() calls. This may be too conservative | ||||
|     sys.stderr.write("svnrdump-sim.py: requires Python 2.4 or later.\n") | ||||
|     sys.exit(1) | ||||
| 
 | ||||
| 
 | ||||
| def getrevlimit(): | ||||
|     var = 'SVNRMAX' | ||||
|     if var in os.environ: | ||||
|         return os.environ[var] | ||||
|     return None | ||||
| 
 | ||||
| 
 | ||||
| def writedump(url, lower, upper): | ||||
|     if url.startswith('sim://'): | ||||
|         filename = url[6:] | ||||
|         if filename[-1] == '/': | ||||
|             filename = filename[:-1]  # remove terminating slash | ||||
|     else: | ||||
|         raise ValueError('sim:// url required') | ||||
|     f = open(filename, 'r') | ||||
|     state = 'header' | ||||
|     wroterev = False | ||||
|     while(True): | ||||
|         l = f.readline() | ||||
|         if l == '': | ||||
|             break | ||||
|         if state == 'header' and l.startswith('Revision-number: '): | ||||
|             state = 'prefix' | ||||
|         if state == 'prefix' and l == 'Revision-number: %s\n' % lower: | ||||
|             state = 'selection' | ||||
|         if not upper == 'HEAD' and state == 'selection' and \ | ||||
|                 l == 'Revision-number: %s\n' % upper: | ||||
|             break | ||||
| 
 | ||||
|         if state == 'header' or state == 'selection': | ||||
|             if state == 'selection': | ||||
|                 wroterev = True | ||||
|             sys.stdout.write(l) | ||||
|     return wroterev | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     if not (len(sys.argv) in (3, 4, 5)): | ||||
|         print("usage: %s dump URL -rLOWER:UPPER") | ||||
|         sys.exit(1) | ||||
|     if not sys.argv[1] == 'dump': | ||||
|         raise NotImplementedError('only "dump" is suppported.') | ||||
|     url = sys.argv[2] | ||||
|     r = ('0', 'HEAD') | ||||
|     if len(sys.argv) == 4 and sys.argv[3][0:2] == '-r': | ||||
|         r = sys.argv[3][2:].lstrip().split(':') | ||||
|     if not getrevlimit() is None: | ||||
|         r[1] = getrevlimit() | ||||
|     if writedump(url, r[0], r[1]): | ||||
|         ret = 0 | ||||
|     else: | ||||
|         ret = 1 | ||||
|     sys.exit(ret) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue