Merge branch 'fc/remote-helper-fixes'
* fc/remote-helper-fixes: remote-hg: test 'shared_path' in a moved clone remote-hg: add tests for special filenames remote-hg: fix 'shared path' path remote-helpers: add extra safety checks remote-hg: avoid buggy strftime()
This commit is contained in:
commit
36ec9e2173
@ -883,6 +883,16 @@ def main(args):
|
|||||||
global branches, peers
|
global branches, peers
|
||||||
global transports
|
global transports
|
||||||
|
|
||||||
|
marks = None
|
||||||
|
is_tmp = False
|
||||||
|
gitdir = os.environ.get('GIT_DIR', None)
|
||||||
|
|
||||||
|
if len(args) < 3:
|
||||||
|
die('Not enough arguments.')
|
||||||
|
|
||||||
|
if not gitdir:
|
||||||
|
die('GIT_DIR not set')
|
||||||
|
|
||||||
alias = args[1]
|
alias = args[1]
|
||||||
url = args[2]
|
url = args[2]
|
||||||
|
|
||||||
@ -891,7 +901,6 @@ def main(args):
|
|||||||
blob_marks = {}
|
blob_marks = {}
|
||||||
parsed_refs = {}
|
parsed_refs = {}
|
||||||
files_cache = {}
|
files_cache = {}
|
||||||
marks = None
|
|
||||||
branches = {}
|
branches = {}
|
||||||
peers = {}
|
peers = {}
|
||||||
transports = []
|
transports = []
|
||||||
@ -899,11 +908,8 @@ def main(args):
|
|||||||
if alias[5:] == url:
|
if alias[5:] == url:
|
||||||
is_tmp = True
|
is_tmp = True
|
||||||
alias = hashlib.sha1(alias).hexdigest()
|
alias = hashlib.sha1(alias).hexdigest()
|
||||||
else:
|
|
||||||
is_tmp = False
|
|
||||||
|
|
||||||
prefix = 'refs/bzr/%s' % alias
|
prefix = 'refs/bzr/%s' % alias
|
||||||
gitdir = os.environ['GIT_DIR']
|
|
||||||
dirname = os.path.join(gitdir, 'bzr', alias)
|
dirname = os.path.join(gitdir, 'bzr', alias)
|
||||||
|
|
||||||
if not is_tmp:
|
if not is_tmp:
|
||||||
|
@ -415,6 +415,9 @@ def get_repo(url, alias):
|
|||||||
local_path = os.path.join(dirname, 'clone')
|
local_path = os.path.join(dirname, 'clone')
|
||||||
if not os.path.exists(local_path):
|
if not os.path.exists(local_path):
|
||||||
hg.share(myui, shared_path, local_path, update=False)
|
hg.share(myui, shared_path, local_path, update=False)
|
||||||
|
else:
|
||||||
|
# make sure the shared path is always up-to-date
|
||||||
|
util.writefile(os.path.join(local_path, '.hg', 'sharedpath'), hg_path)
|
||||||
|
|
||||||
repo = hg.repository(myui, local_path)
|
repo = hg.repository(myui, local_path)
|
||||||
try:
|
try:
|
||||||
@ -537,7 +540,7 @@ def export_ref(repo, name, kind, head):
|
|||||||
|
|
||||||
print "commit %s" % ref
|
print "commit %s" % ref
|
||||||
print "mark :%d" % (note_mark)
|
print "mark :%d" % (note_mark)
|
||||||
print "committer remote-hg <> %s" % (ptime.strftime('%s %z'))
|
print "committer remote-hg <> %d %s" % (ptime.time(), gittz(ptime.timezone))
|
||||||
desc = "Notes for %s\n" % (name)
|
desc = "Notes for %s\n" % (name)
|
||||||
print "data %d" % (len(desc))
|
print "data %d" % (len(desc))
|
||||||
print desc
|
print desc
|
||||||
@ -1164,6 +1167,16 @@ def main(args):
|
|||||||
global dry_run
|
global dry_run
|
||||||
global notes, alias
|
global notes, alias
|
||||||
|
|
||||||
|
marks = None
|
||||||
|
is_tmp = False
|
||||||
|
gitdir = os.environ.get('GIT_DIR', None)
|
||||||
|
|
||||||
|
if len(args) < 3:
|
||||||
|
die('Not enough arguments.')
|
||||||
|
|
||||||
|
if not gitdir:
|
||||||
|
die('GIT_DIR not set')
|
||||||
|
|
||||||
alias = args[1]
|
alias = args[1]
|
||||||
url = args[2]
|
url = args[2]
|
||||||
peer = None
|
peer = None
|
||||||
@ -1184,16 +1197,12 @@ def main(args):
|
|||||||
if alias[4:] == url:
|
if alias[4:] == url:
|
||||||
is_tmp = True
|
is_tmp = True
|
||||||
alias = hashlib.sha1(alias).hexdigest()
|
alias = hashlib.sha1(alias).hexdigest()
|
||||||
else:
|
|
||||||
is_tmp = False
|
|
||||||
|
|
||||||
gitdir = os.environ['GIT_DIR']
|
|
||||||
dirname = os.path.join(gitdir, 'hg', alias)
|
dirname = os.path.join(gitdir, 'hg', alias)
|
||||||
branches = {}
|
branches = {}
|
||||||
bmarks = {}
|
bmarks = {}
|
||||||
blob_marks = {}
|
blob_marks = {}
|
||||||
parsed_refs = {}
|
parsed_refs = {}
|
||||||
marks = None
|
|
||||||
parsed_tags = {}
|
parsed_tags = {}
|
||||||
filenodes = {}
|
filenodes = {}
|
||||||
fake_bmark = None
|
fake_bmark = None
|
||||||
|
@ -337,6 +337,17 @@ test_expect_success 'remote cloning' '
|
|||||||
check gitrepo HEAD zero
|
check gitrepo HEAD zero
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'moving remote clone' '
|
||||||
|
test_when_finished "rm -rf gitrepo*" &&
|
||||||
|
|
||||||
|
(
|
||||||
|
git clone "hg::hgrepo" gitrepo &&
|
||||||
|
mv gitrepo gitrepo2 &&
|
||||||
|
cd gitrepo2 &&
|
||||||
|
git fetch
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'remote update bookmark' '
|
test_expect_success 'remote update bookmark' '
|
||||||
test_when_finished "rm -rf gitrepo*" &&
|
test_when_finished "rm -rf gitrepo*" &&
|
||||||
|
|
||||||
@ -444,6 +455,74 @@ test_expect_success 'remote new bookmark multiple branch head' '
|
|||||||
# cleanup previous stuff
|
# cleanup previous stuff
|
||||||
rm -rf hgrepo
|
rm -rf hgrepo
|
||||||
|
|
||||||
|
test_expect_success 'fetch special filenames' '
|
||||||
|
test_when_finished "rm -rf hgrepo gitrepo && LC_ALL=C" &&
|
||||||
|
|
||||||
|
LC_ALL=en_US.UTF-8
|
||||||
|
export LC_ALL
|
||||||
|
|
||||||
|
(
|
||||||
|
hg init hgrepo &&
|
||||||
|
cd hgrepo &&
|
||||||
|
|
||||||
|
echo test >> "æ rø" &&
|
||||||
|
hg add "æ rø" &&
|
||||||
|
echo test >> "ø~?" &&
|
||||||
|
hg add "ø~?" &&
|
||||||
|
hg commit -m add-utf-8 &&
|
||||||
|
echo test >> "æ rø" &&
|
||||||
|
hg commit -m test-utf-8 &&
|
||||||
|
hg rm "ø~?" &&
|
||||||
|
hg mv "æ rø" "ø~?" &&
|
||||||
|
hg commit -m hg-mv-utf-8
|
||||||
|
) &&
|
||||||
|
|
||||||
|
(
|
||||||
|
git clone "hg::hgrepo" gitrepo &&
|
||||||
|
cd gitrepo &&
|
||||||
|
git -c core.quotepath=false ls-files > ../actual
|
||||||
|
) &&
|
||||||
|
echo "ø~?" > expected &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'push special filenames' '
|
||||||
|
test_when_finished "rm -rf hgrepo gitrepo && LC_ALL=C" &&
|
||||||
|
|
||||||
|
mkdir -p tmp && cd tmp &&
|
||||||
|
|
||||||
|
LC_ALL=en_US.UTF-8
|
||||||
|
export LC_ALL
|
||||||
|
|
||||||
|
(
|
||||||
|
hg init hgrepo &&
|
||||||
|
cd hgrepo &&
|
||||||
|
|
||||||
|
echo one >> content &&
|
||||||
|
hg add content &&
|
||||||
|
hg commit -m one
|
||||||
|
) &&
|
||||||
|
|
||||||
|
(
|
||||||
|
git clone "hg::hgrepo" gitrepo &&
|
||||||
|
cd gitrepo &&
|
||||||
|
|
||||||
|
echo test >> "æ rø" &&
|
||||||
|
git add "æ rø" &&
|
||||||
|
git commit -m utf-8 &&
|
||||||
|
|
||||||
|
git push
|
||||||
|
) &&
|
||||||
|
|
||||||
|
(cd hgrepo &&
|
||||||
|
hg update &&
|
||||||
|
hg manifest > ../actual
|
||||||
|
) &&
|
||||||
|
|
||||||
|
printf "content\næ rø\n" > expected &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
setup_big_push () {
|
setup_big_push () {
|
||||||
(
|
(
|
||||||
hg init hgrepo &&
|
hg init hgrepo &&
|
||||||
|
Loading…
Reference in New Issue
Block a user