-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
A GSoC project. * fa/remote-svn: Add a test script for remote-svn remote-svn: add marks-file regeneration Add a svnrdump-simulator replaying a dump file for testing remote-svn: add incremental import remote-svn: Activate import/export-marks for fast-import Create a note for every imported commit containing svn metadata vcs-svn: add fast_export_note to create notes Allow reading svn dumps from files via file:// urls remote-svn, vcs-svn: Enable fetching to private refs When debug==1, start fast-import with "--stats" instead of "--quiet" Add documentation for the 'bidi-import' capability of remote-helpers Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability Add argv_array_detach and argv_array_free_detached Add svndump_init_fd to allow reading dumps from arbitrary FDs Add git-remote-testsvn to Makefile Implement a remote helper for svn in C
- Loading branch information
Showing
16 changed files
with
655 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
#!/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, os | ||
|
||
|
||
def getrevlimit(): | ||
var = 'SVNRMAX' | ||
if os.environ.has_key(var): | ||
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) |
Oops, something went wrong.