From: Pete Wyckoff <pw@padd.com>
To: git@vger.kernel.org
Subject: [PATCH 04/11] git-p4: test cloning with two dirs, clarify doc
Date: Sat, 24 Dec 2011 21:07:33 -0500 [thread overview]
Message-ID: <1324778860-4821-5-git-send-email-pw@padd.com> (raw)
In-Reply-To: <1324778860-4821-1-git-send-email-pw@padd.com>
Document how git-p4 currently works when specifying multiple
depot paths:
1. No branches or directories are named.
2. Conflicting files are silently ignored---the last change
wins.
2. Option --destination is required, else the last path is construed
to be a directory.
3. Revision specifiers must be the same on all paths for them to
take effect.
Test this behavior.
Signed-off-by: Pete Wyckoff <pw@padd.com>
---
Documentation/git-p4.txt | 11 +++++++-
t/t9800-git-p4-basic.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-p4.txt b/Documentation/git-p4.txt
index c981407..c15b3b7 100644
--- a/Documentation/git-p4.txt
+++ b/Documentation/git-p4.txt
@@ -276,8 +276,15 @@ p4 revision specifier on the end:
"//depot/my/project@1,6"::
Import only changes 1 through 6.
-"//depot/proj1 //depot/proj2@all"::
- Import all changes from both named depot paths.
+"//depot/proj1@all //depot/proj2@all"::
+ Import all changes from both named depot paths into a single
+ repository. Only files below these directories are included.
+ There is not a subdirectory in git for each "proj1" and "proj2".
+ You must use the '--destination' option when specifying more
+ than one depot path. The revision specifier must be specified
+ identically on each depot path. If there are files in the
+ depot paths with the same name, the path with the most recently
+ updated version of the file is the one that appears in git.
See 'p4 help revisions' for the full syntax of p4 revision specifiers.
diff --git a/t/t9800-git-p4-basic.sh b/t/t9800-git-p4-basic.sh
index 272de3f..04ee20e 100755
--- a/t/t9800-git-p4-basic.sh
+++ b/t/t9800-git-p4-basic.sh
@@ -65,6 +65,66 @@ test_expect_success 'git-p4 sync new branch' '
)
'
+test_expect_success 'clone two dirs' '
+ (
+ cd "$cli" &&
+ mkdir sub1 sub2 &&
+ echo sub1/f1 >sub1/f1 &&
+ echo sub2/f2 >sub2/f2 &&
+ p4 add sub1/f1 &&
+ p4 submit -d "sub1/f1" &&
+ p4 add sub2/f2 &&
+ p4 submit -d "sub2/f2"
+ ) &&
+ "$GITP4" clone --dest="$git" //depot/sub1 //depot/sub2 &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ git ls-files >lines &&
+ test_line_count = 2 lines &&
+ git log --oneline p4/master >lines &&
+ test_line_count = 1 lines
+ )
+'
+
+test_expect_success 'clone two dirs, @all' '
+ (
+ cd "$cli" &&
+ echo sub1/f3 >sub1/f3 &&
+ p4 add sub1/f3 &&
+ p4 submit -d "sub1/f3"
+ ) &&
+ "$GITP4" clone --dest="$git" //depot/sub1@all //depot/sub2@all &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ git ls-files >lines &&
+ test_line_count = 3 lines &&
+ git log --oneline p4/master >lines &&
+ test_line_count = 3 lines
+ )
+'
+
+test_expect_success 'clone two dirs, @all, conflicting files' '
+ (
+ cd "$cli" &&
+ echo sub2/f3 >sub2/f3 &&
+ p4 add sub2/f3 &&
+ p4 submit -d "sub2/f3"
+ ) &&
+ "$GITP4" clone --dest="$git" //depot/sub1@all //depot/sub2@all &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ git ls-files >lines &&
+ test_line_count = 3 lines &&
+ git log --oneline p4/master >lines &&
+ test_line_count = 4 lines &&
+ echo sub2/f3 >expected &&
+ test_cmp expected f3
+ )
+'
+
test_expect_success 'exit when p4 fails to produce marshaled output' '
badp4dir="$TRASH_DIRECTORY/badp4dir" &&
mkdir "$badp4dir" &&
--
1.7.8.534.g03ab.dirty
next prev parent reply other threads:[~2011-12-25 2:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-25 2:07 [PATCHv3 00/11] git-p4: asciidoc documentation and fixes Pete Wyckoff
2011-12-25 2:07 ` [PATCH 01/11] rename git-p4 tests Pete Wyckoff
2011-12-25 2:07 ` [PATCH 02/11] git-p4: introduce asciidoc documentation Pete Wyckoff
2011-12-25 2:07 ` [PATCH 03/11] git-p4: clone does not use --git-dir Pete Wyckoff
2011-12-25 2:07 ` Pete Wyckoff [this message]
2011-12-25 2:07 ` [PATCH 05/11] git-p4: document and test clone --branch Pete Wyckoff
2011-12-25 2:07 ` [PATCH 06/11] git-p4: honor --changesfile option and test Pete Wyckoff
2011-12-25 2:07 ` [PATCH 07/11] git-p4: document and test --import-local Pete Wyckoff
2011-12-25 2:07 ` [PATCH 08/11] git-p4: test --max-changes Pete Wyckoff
2011-12-25 2:07 ` [PATCH 09/11] git-p4: test --keep-path Pete Wyckoff
2011-12-25 2:07 ` [PATCH 10/11] git-p4: test and document --use-client-spec Pete Wyckoff
2011-12-25 2:07 ` [PATCH 11/11] git-p4: document and test submit options Pete Wyckoff
-- strict thread matches above, loose matches on Subject: below --
2011-12-17 18:52 [PATCH 00/11] git-p4: asciidoc documentation and fixes Pete Wyckoff
2011-12-17 18:52 ` [PATCH 04/11] git-p4: test cloning with two dirs, clarify doc Pete Wyckoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1324778860-4821-5-git-send-email-pw@padd.com \
--to=pw@padd.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).