mirror of
https://github.com/facebook/sapling.git
synced 2025-01-07 14:10:42 +03:00
e75b9fc1b1
Summary: This commit moves most of the stuff in hgext3rd and related tests to hg-crew/hgext and hg-crew/test respectively. The things that are not moved are the ones which require some more complex imports. Depends on D6675309 Test Plan: - tests are failing at this commit, fixes are in the following commits Reviewers: #sourcecontrol Differential Revision: https://phabricator.intern.facebook.com/D6675329
117 lines
2.6 KiB
Perl
117 lines
2.6 KiB
Perl
#require p4
|
|
|
|
$ . $TESTDIR/p4setup.sh
|
|
|
|
create extension
|
|
|
|
$ cat > $TESTTMP/fail.py << EOF
|
|
> from __future__ import absolute_import
|
|
> import sys
|
|
> from mercurial import (
|
|
> extensions,
|
|
> filelog,
|
|
> )
|
|
> tries = 0
|
|
> def reposetup(ui, repo):
|
|
> def fail(orig, *args, **kwargs):
|
|
> global tries
|
|
> if tries == 1:
|
|
> raise Exception()
|
|
> tries += 1
|
|
> return orig(*args, **kwargs)
|
|
> e = extensions.find('p4fastimport')
|
|
> extensions.wrapfunction(filelog.filelog, 'add', fail)
|
|
> EOF
|
|
|
|
populate the depot
|
|
$ mkdir Main
|
|
$ mkdir Main/b
|
|
$ echo a > Main/a
|
|
$ echo c > Main/b/c
|
|
$ p4 add Main/a Main/b/c
|
|
//depot/Main/a#1 - opened for add
|
|
//depot/Main/b/c#1 - opened for add
|
|
$ p4 submit -d initial
|
|
Submitting change 1.
|
|
Locking 2 files ...
|
|
add //depot/Main/a#1
|
|
add //depot/Main/b/c#1
|
|
Change 1 submitted.
|
|
|
|
$ p4 edit Main/a Main/b/c
|
|
//depot/Main/a#1 - opened for edit
|
|
//depot/Main/b/c#1 - opened for edit
|
|
$ echo a >> Main/a
|
|
$ echo c >> Main/b/c
|
|
$ p4 submit -d second
|
|
Submitting change 2.
|
|
Locking 2 files ...
|
|
edit //depot/Main/a#2
|
|
edit //depot/Main/b/c#2
|
|
Change 2 submitted.
|
|
|
|
Simple import
|
|
|
|
$ cd $hgwd
|
|
$ hg init --config 'format.usefncache=False'
|
|
$ hg p4fastimport --bookmark master --verbose -P $P4ROOT hg-p4-import
|
|
loading changelist numbers.
|
|
2 changelists to import.
|
|
loading list of files.
|
|
2 files to import.
|
|
importing repository.
|
|
writing bookmark
|
|
2 revision(s), 2 file(s) imported.
|
|
|
|
Verify
|
|
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
2 files, 2 changesets, 4 total revisions
|
|
|
|
Enable extensions that will test transaction recovery
|
|
|
|
$ echo "[p4fastimport]" >> $HGRCPATH
|
|
$ echo "useworker=force" >> $HGRCPATH
|
|
|
|
One more submit
|
|
|
|
$ cd $p4wd
|
|
$ p4 edit Main/b/c
|
|
//depot/Main/b/c#2 - opened for edit
|
|
$ echo c >> Main/b/c
|
|
$ p4 submit -d third
|
|
Submitting change 3.
|
|
Locking 1 files ...
|
|
edit //depot/Main/b/c#3
|
|
Change 3 submitted.
|
|
$ p4 edit Main/b/c
|
|
//depot/Main/b/c#3 - opened for edit
|
|
$ echo c >> Main/b/c
|
|
$ p4 submit -d foruth
|
|
Submitting change 4.
|
|
Locking 1 files ...
|
|
edit //depot/Main/b/c#4
|
|
Change 4 submitted.
|
|
|
|
$ cd $hgwd
|
|
$ hg --config "extensions.fail=$TESTTMP/fail.py" p4fastimport --bookmark master -P $P4ROOT hg-p4-import 2>&1 | grep -E "^transaction|^rollback"
|
|
transaction abort!
|
|
rollback complete
|
|
|
|
Verify
|
|
|
|
$ hg verify
|
|
checking changesets
|
|
checking manifests
|
|
crosschecking files in changesets and manifests
|
|
checking files
|
|
2 files, 2 changesets, 4 total revisions
|
|
|
|
End Test
|
|
|
|
stopping the p4 server
|