eac_git 0.1.0 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/eac_git/executables.rb +24 -4
- data/lib/eac_git/local.rb +5 -1
- data/lib/eac_git/local/dirty_files.rb +37 -0
- data/lib/eac_git/rspec.rb +17 -0
- data/lib/eac_git/version.rb +1 -1
- data/vendor/git-subrepo/Changes +110 -0
- data/vendor/git-subrepo/Intro.pod +509 -0
- data/vendor/git-subrepo/License +21 -0
- data/vendor/git-subrepo/Makefile +82 -0
- data/vendor/git-subrepo/Meta +28 -0
- data/vendor/git-subrepo/ReadMe.pod +698 -0
- data/vendor/git-subrepo/doc/comparison.swim +35 -0
- data/vendor/git-subrepo/doc/git-subrepo.swim +608 -0
- data/vendor/git-subrepo/doc/intro-to-subrepo.swim +387 -0
- data/vendor/git-subrepo/ext/bashplus/Changes +15 -0
- data/vendor/git-subrepo/ext/bashplus/License +21 -0
- data/vendor/git-subrepo/ext/bashplus/Makefile +45 -0
- data/vendor/git-subrepo/ext/bashplus/Meta +28 -0
- data/vendor/git-subrepo/ext/bashplus/ReadMe.pod +77 -0
- data/vendor/git-subrepo/ext/bashplus/bin/bash+ +43 -0
- data/vendor/git-subrepo/ext/bashplus/doc/bash+.swim +61 -0
- data/vendor/git-subrepo/ext/bashplus/lib/bash+.bash +92 -0
- data/vendor/git-subrepo/ext/bashplus/man/man1/bash+.1 +134 -0
- data/vendor/git-subrepo/ext/bashplus/man/man3/bash+.3 +134 -0
- data/vendor/git-subrepo/ext/bashplus/test/base.t +12 -0
- data/vendor/git-subrepo/ext/bashplus/test/fcopy.t +22 -0
- data/vendor/git-subrepo/ext/bashplus/test/lib/foo/bar.bash +3 -0
- data/vendor/git-subrepo/ext/bashplus/test/lib/foo/foo.bash +3 -0
- data/vendor/git-subrepo/ext/bashplus/test/source-bash+-std.t +18 -0
- data/vendor/git-subrepo/ext/bashplus/test/source-bash+.t +23 -0
- data/vendor/git-subrepo/ext/bashplus/test/test.bash +70 -0
- data/vendor/git-subrepo/ext/bashplus/test/use.t +19 -0
- data/vendor/git-subrepo/ext/test-more-bash/Changes +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/License +21 -0
- data/vendor/git-subrepo/ext/test-more-bash/Makefile +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/Meta +30 -0
- data/vendor/git-subrepo/ext/test-more-bash/ReadMe.pod +115 -0
- data/vendor/git-subrepo/ext/test-more-bash/doc/test-more.swim +89 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Changes +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/License +21 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Makefile +45 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/Meta +28 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/ReadMe.pod +77 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/bin/bash+ +43 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/doc/bash+.swim +61 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/lib/bash+.bash +92 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man1/bash+.1 +134 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/man/man3/bash+.3 +134 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/base.t +12 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/fcopy.t +22 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/bar.bash +3 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/lib/foo/foo.bash +3 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+-std.t +18 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/source-bash+.t +23 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/test.bash +70 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/bashplus/test/use.t +19 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Changes +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/License +21 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Makefile +37 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/Meta +28 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/ReadMe.pod +66 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/doc/test-tap.swim +48 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/lib/test/tap.bash +153 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/man/man3/test-tap.3 +119 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/bail_out.t +13 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/done.t +10 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/fail_fast.t +15 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/helper.bash +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/pass.t +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/plan.t +10 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/skip_all.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/tap.t +13 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/bail.t +14 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail.t +7 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/fail_fast.t +12 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-init.t +8 -0
- data/vendor/git-subrepo/ext/test-more-bash/ext/test-tap-bash/test/test/skip-all-plan.t +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/lib/test/more.bash +95 -0
- data/vendor/git-subrepo/ext/test-more-bash/man/man3/test-more.3 +173 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/fail.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/more.t +20 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/pass.t +9 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/setup +8 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/skip_all.t +11 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/test/fail1.t +12 -0
- data/vendor/git-subrepo/ext/test-more-bash/test/test/skip_all.t +10 -0
- data/vendor/git-subrepo/lib/git-subrepo +1903 -0
- data/vendor/git-subrepo/lib/git-subrepo.d/bash+.bash +1 -0
- data/vendor/git-subrepo/lib/git-subrepo.d/help-functions.bash +339 -0
- data/vendor/git-subrepo/man/man1/git-subrepo.1 +743 -0
- data/vendor/git-subrepo/note/0.4.0 +12 -0
- data/vendor/git-subrepo/note/AllGitCmds +148 -0
- data/vendor/git-subrepo/note/Cases +32 -0
- data/vendor/git-subrepo/note/Commands +33 -0
- data/vendor/git-subrepo/note/Dags +199 -0
- data/vendor/git-subrepo/note/Gists +7 -0
- data/vendor/git-subrepo/note/Links +25 -0
- data/vendor/git-subrepo/note/Plugins +10 -0
- data/vendor/git-subrepo/note/Spec +39 -0
- data/vendor/git-subrepo/note/Story1 +57 -0
- data/vendor/git-subrepo/note/ToDo +55 -0
- data/vendor/git-subrepo/note/design.swim +137 -0
- data/vendor/git-subrepo/note/design2.swim +85 -0
- data/vendor/git-subrepo/note/init-test +38 -0
- data/vendor/git-subrepo/note/pull-dance.txt +18 -0
- data/vendor/git-subrepo/note/recreate-rebase-conflict.sh +56 -0
- data/vendor/git-subrepo/note/subtree-rebase-fail-example/test.bash +29 -0
- data/vendor/git-subrepo/note/test-subrepo-push.sh +69 -0
- data/vendor/git-subrepo/note/test.sh +58 -0
- data/vendor/git-subrepo/pkg/bin/generate-completion.pl +210 -0
- data/vendor/git-subrepo/pkg/bin/generate-help-functions.pl +89 -0
- data/vendor/git-subrepo/share/completion.bash +42 -0
- data/vendor/git-subrepo/share/enable-completion.sh +50 -0
- data/vendor/git-subrepo/share/git-completion.bash +2738 -0
- data/vendor/git-subrepo/share/zsh-completion/_git-subrepo +81 -0
- data/vendor/git-subrepo/test/branch-all.t +41 -0
- data/vendor/git-subrepo/test/branch-rev-list-one-path.t +43 -0
- data/vendor/git-subrepo/test/branch-rev-list.t +47 -0
- data/vendor/git-subrepo/test/branch.t +52 -0
- data/vendor/git-subrepo/test/clean.t +43 -0
- data/vendor/git-subrepo/test/clone-annotated-tag.t +45 -0
- data/vendor/git-subrepo/test/clone.t +107 -0
- data/vendor/git-subrepo/test/compile.t +19 -0
- data/vendor/git-subrepo/test/config.t +58 -0
- data/vendor/git-subrepo/test/encode.t +91 -0
- data/vendor/git-subrepo/test/error.t +171 -0
- data/vendor/git-subrepo/test/fetch.t +43 -0
- data/vendor/git-subrepo/test/gitignore.t +61 -0
- data/vendor/git-subrepo/test/init.t +64 -0
- data/vendor/git-subrepo/test/issue29.t +98 -0
- data/vendor/git-subrepo/test/issue95.t +98 -0
- data/vendor/git-subrepo/test/issue96.t +96 -0
- data/vendor/git-subrepo/test/pull-all.t +38 -0
- data/vendor/git-subrepo/test/pull-merge.t +113 -0
- data/vendor/git-subrepo/test/pull-message.t +88 -0
- data/vendor/git-subrepo/test/pull-new-branch.t +58 -0
- data/vendor/git-subrepo/test/pull-ours.t +90 -0
- data/vendor/git-subrepo/test/pull-theirs.t +82 -0
- data/vendor/git-subrepo/test/pull-twice.t +44 -0
- data/vendor/git-subrepo/test/pull-worktree.t +40 -0
- data/vendor/git-subrepo/test/pull.t +99 -0
- data/vendor/git-subrepo/test/push-after-init.t +51 -0
- data/vendor/git-subrepo/test/push-force.t +56 -0
- data/vendor/git-subrepo/test/push-new-branch.t +61 -0
- data/vendor/git-subrepo/test/push-no-changes.t +29 -0
- data/vendor/git-subrepo/test/push-squash.t +56 -0
- data/vendor/git-subrepo/test/push.t +176 -0
- data/vendor/git-subrepo/test/reclone.t +45 -0
- data/vendor/git-subrepo/test/repo/bar/HEAD +1 -0
- data/vendor/git-subrepo/test/repo/bar/config +4 -0
- data/vendor/git-subrepo/test/repo/bar/objects/1f/0c4b264caed0126814a0ede851a1e0b4e16ae6 +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/87/46903fdb1b9c2101377880125917c2e05b4d69 +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/94/c86ffc745232d89f78c6f895e11e71272518db +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/c6/76c57b6576743fa56278527aa60ebd2e202a7c +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
- data/vendor/git-subrepo/test/repo/bar/objects/f6/2a8ff3feadf39b0a98f1a86ec6d1eb33858ee9 +0 -0
- data/vendor/git-subrepo/test/repo/bar/refs/heads/master +1 -0
- data/vendor/git-subrepo/test/repo/bar/refs/tags/A +1 -0
- data/vendor/git-subrepo/test/repo/foo/HEAD +1 -0
- data/vendor/git-subrepo/test/repo/foo/config +4 -0
- data/vendor/git-subrepo/test/repo/foo/objects/a0/f4cdaaf533a936296cdebbed8206c3b9ededa8 +0 -0
- data/vendor/git-subrepo/test/repo/foo/objects/e2/1291a1ad392a9d4c51dd9586804f1467b28afd +0 -0
- data/vendor/git-subrepo/test/repo/foo/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
- data/vendor/git-subrepo/test/repo/foo/refs/heads/master +1 -0
- data/vendor/git-subrepo/test/repo/init/HEAD +1 -0
- data/vendor/git-subrepo/test/repo/init/config +5 -0
- data/vendor/git-subrepo/test/repo/init/objects/11/523f5dcf03b4c89b592dc8a3d0308f68da2386 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/14/2addf8ec5f37334e837440122c62f2c68a29ad +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/32/5180321750a21cd7a4e7ecda319e557a4f6a09 +2 -0
- data/vendor/git-subrepo/test/repo/init/objects/3d/918c6901c02f43af5d31779dd5e1f9166aeb36 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/3e/4cb596066dce63ba4d047abddb677389b65e19 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/4b/6e53022e7a04f07887697e4f3d7c377fd9822b +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/58/931fc1bd559b59c41ea738fc7ad04f9ad01bd3 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/5e/c0c28e1b806f25efdca18fcf7a74b49c3755bd +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/75/fa6584e748f57eff06eebdc55e9ac21d4fcbf2 +1 -0
- data/vendor/git-subrepo/test/repo/init/objects/80/2d5edbd5e1cb7fca82b5bd38e7c8a0a496fb20 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/94/7b3d714c38791e95ad6f928b48c98bb8708acd +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/95/e1f2df3f4d5f3d7a60588c25a7ca8a913d3c2a +1 -0
- data/vendor/git-subrepo/test/repo/init/objects/b1/5f4a7666baf40d949548ead946a3370e273479 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/c3/ee8978c4c5d84c3b7d00ba8e5906933d027882 +0 -0
- data/vendor/git-subrepo/test/repo/init/objects/c8/b0bffbc405ef3fad7354ff833fbec36d67ddfa +3 -0
- data/vendor/git-subrepo/test/repo/init/objects/dd/8bdb934ec848137f011fe423b185505c343626 +2 -0
- data/vendor/git-subrepo/test/repo/init/objects/e2/9be58c767cfeb27235c995d293a7d71aac0135 +2 -0
- data/vendor/git-subrepo/test/repo/init/objects/ee/1224401fc6aac595145fa727dcf6706ac8aec1 +1 -0
- data/vendor/git-subrepo/test/repo/init/objects/f1/cc1a657b2e805c400f5dcaaa76bd29c6178b1b +0 -0
- data/vendor/git-subrepo/test/repo/init/refs/heads/master +1 -0
- data/vendor/git-subrepo/test/setup +205 -0
- data/vendor/git-subrepo/test/status.t +68 -0
- data/vendor/git-subrepo/test/submodule.t +45 -0
- metadata +190 -4
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
source test/setup
|
|
6
|
+
|
|
7
|
+
use Test::More
|
|
8
|
+
|
|
9
|
+
# Create directory and init git locally as this will test some corner
|
|
10
|
+
# cases when you don't have any previous commits to rely on
|
|
11
|
+
# see issue/122
|
|
12
|
+
(
|
|
13
|
+
mkdir -p $OWNER/init
|
|
14
|
+
cd $OWNER/init
|
|
15
|
+
git init
|
|
16
|
+
mkdir doc
|
|
17
|
+
add-new-files doc/FooBar
|
|
18
|
+
git subrepo init doc || die
|
|
19
|
+
mkdir ../upstream
|
|
20
|
+
git init --bare ../upstream || die
|
|
21
|
+
) &> /dev/null
|
|
22
|
+
|
|
23
|
+
output="$(
|
|
24
|
+
cd $OWNER/init
|
|
25
|
+
git subrepo push doc --remote=../upstream
|
|
26
|
+
)"
|
|
27
|
+
|
|
28
|
+
is "$output" "Subrepo 'doc' pushed to '../upstream' (master)." \
|
|
29
|
+
'Command output is correct'
|
|
30
|
+
|
|
31
|
+
# Test init/doc/.gitrepo file contents:
|
|
32
|
+
gitrepo=$OWNER/init/doc/.gitrepo
|
|
33
|
+
{
|
|
34
|
+
test-gitrepo-field "remote" "../upstream"
|
|
35
|
+
test-gitrepo-field "branch" "master"
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
(
|
|
39
|
+
cd $OWNER
|
|
40
|
+
git clone upstream up
|
|
41
|
+
) &>/dev/null
|
|
42
|
+
|
|
43
|
+
{
|
|
44
|
+
test-exists \
|
|
45
|
+
"$OWNER/up/.git/" \
|
|
46
|
+
"!$OWNER/up/.gitrepo"
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
done_testing
|
|
50
|
+
|
|
51
|
+
teardown
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
source test/setup
|
|
6
|
+
|
|
7
|
+
use Test::More
|
|
8
|
+
|
|
9
|
+
clone-foo-and-bar
|
|
10
|
+
|
|
11
|
+
subrepo-clone-bar-into-foo
|
|
12
|
+
|
|
13
|
+
(
|
|
14
|
+
cd $OWNER/bar
|
|
15
|
+
add-new-files Bar2
|
|
16
|
+
git push
|
|
17
|
+
) &> /dev/null || die
|
|
18
|
+
|
|
19
|
+
(
|
|
20
|
+
cd $OWNER/foo
|
|
21
|
+
add-new-files bar/Foo1
|
|
22
|
+
git subrepo push bar --force
|
|
23
|
+
) &> /dev/null || die
|
|
24
|
+
|
|
25
|
+
(
|
|
26
|
+
cd $OWNER/foo
|
|
27
|
+
git subrepo pull bar
|
|
28
|
+
) &> /dev/null || die
|
|
29
|
+
|
|
30
|
+
test-exists \
|
|
31
|
+
"$OWNER/foo/bar/Foo1" \
|
|
32
|
+
!"$OWNER/foo/bar/Bar2" \
|
|
33
|
+
|
|
34
|
+
# Pull here will actually merge the old master with the new one
|
|
35
|
+
(
|
|
36
|
+
set +x
|
|
37
|
+
cd $OWNER/bar
|
|
38
|
+
git pull
|
|
39
|
+
) &> /dev/null || die
|
|
40
|
+
|
|
41
|
+
test-exists \
|
|
42
|
+
"$OWNER/bar/Bar2" \
|
|
43
|
+
"$OWNER/bar/Foo1" \
|
|
44
|
+
|
|
45
|
+
# Test that a fresh repo is not contaminated
|
|
46
|
+
(
|
|
47
|
+
git clone $UPSTREAM/bar $OWNER/newbar
|
|
48
|
+
) &> /dev/null || die
|
|
49
|
+
|
|
50
|
+
test-exists \
|
|
51
|
+
"$OWNER/newbar/Foo1" \
|
|
52
|
+
!"$OWNER/foo/bar/Bar2" \
|
|
53
|
+
|
|
54
|
+
done_testing
|
|
55
|
+
|
|
56
|
+
teardown
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
source test/setup
|
|
6
|
+
|
|
7
|
+
use Test::More
|
|
8
|
+
|
|
9
|
+
clone-foo-and-bar
|
|
10
|
+
|
|
11
|
+
# Make various changes to the repos for testing subrepo push:
|
|
12
|
+
(
|
|
13
|
+
# In the main repo:
|
|
14
|
+
cd $OWNER/foo
|
|
15
|
+
|
|
16
|
+
# Clone the subrepo into a subdir
|
|
17
|
+
git subrepo clone ../../../$UPSTREAM/bar
|
|
18
|
+
|
|
19
|
+
# Make a commit:
|
|
20
|
+
add-new-files bar/FooBar
|
|
21
|
+
) &> /dev/null || die
|
|
22
|
+
|
|
23
|
+
# Do the subrepo push to another branch:
|
|
24
|
+
{
|
|
25
|
+
message="$(
|
|
26
|
+
cd $OWNER/foo
|
|
27
|
+
git subrepo push bar --branch newbar
|
|
28
|
+
)"
|
|
29
|
+
|
|
30
|
+
# Test the output:
|
|
31
|
+
is "$message" \
|
|
32
|
+
"Subrepo 'bar' pushed to '../../../tmp/upstream/bar' (newbar)." \
|
|
33
|
+
'First push message is correct '
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
# Do the subrepo push to another branch again:
|
|
37
|
+
{
|
|
38
|
+
message="$(
|
|
39
|
+
cd $OWNER/foo
|
|
40
|
+
git subrepo push bar --branch newbar
|
|
41
|
+
)"
|
|
42
|
+
|
|
43
|
+
# Test the output:
|
|
44
|
+
is "$message" \
|
|
45
|
+
"Subrepo 'bar' has no new commits to push." \
|
|
46
|
+
'Second push message is correct'
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
# Pull the changes from UPSTREAM/bar in OWNER/bar
|
|
50
|
+
(
|
|
51
|
+
cd $OWNER/bar
|
|
52
|
+
git fetch
|
|
53
|
+
git checkout newbar
|
|
54
|
+
) &> /dev/null || die
|
|
55
|
+
|
|
56
|
+
test-exists \
|
|
57
|
+
"$OWNER/bar/FooBar" \
|
|
58
|
+
|
|
59
|
+
done_testing
|
|
60
|
+
|
|
61
|
+
teardown
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
source test/setup
|
|
6
|
+
|
|
7
|
+
use Test::More
|
|
8
|
+
|
|
9
|
+
note "Test output from successful git-subrepo commands"
|
|
10
|
+
|
|
11
|
+
clone-foo-and-bar
|
|
12
|
+
|
|
13
|
+
{
|
|
14
|
+
is "$(
|
|
15
|
+
cd $OWNER/bar
|
|
16
|
+
git subrepo --quiet clone ../../../$UPSTREAM/foo
|
|
17
|
+
catch git subrepo push foo
|
|
18
|
+
)" \
|
|
19
|
+
"Subrepo 'foo' has no new commits to push." \
|
|
20
|
+
"Output OK: Check that 'push' requires changes to push"
|
|
21
|
+
(
|
|
22
|
+
cd $OWNER/bar
|
|
23
|
+
git subrepo --quiet clean foo
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
done_testing 1
|
|
28
|
+
|
|
29
|
+
teardown
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
source test/setup
|
|
6
|
+
|
|
7
|
+
use Test::More
|
|
8
|
+
|
|
9
|
+
clone-foo-and-bar
|
|
10
|
+
|
|
11
|
+
# Make various changes to the repos for testing subrepo push:
|
|
12
|
+
(
|
|
13
|
+
# In the main repo:
|
|
14
|
+
cd $OWNER/foo
|
|
15
|
+
|
|
16
|
+
# Clone the subrepo into a subdir
|
|
17
|
+
git subrepo clone ../../../$UPSTREAM/bar
|
|
18
|
+
|
|
19
|
+
# Make a series of commits:
|
|
20
|
+
add-new-files bar/FooBar1
|
|
21
|
+
add-new-files bar/FooBar2
|
|
22
|
+
modify-files bar/FooBar1
|
|
23
|
+
add-new-files ./FooBar
|
|
24
|
+
modify-files ./FooBar bar/FooBar2
|
|
25
|
+
) &> /dev/null || die
|
|
26
|
+
|
|
27
|
+
# Do the subrepo push and test the output:
|
|
28
|
+
{
|
|
29
|
+
message="$(
|
|
30
|
+
cd $OWNER/foo
|
|
31
|
+
git subrepo push bar --squash
|
|
32
|
+
)"
|
|
33
|
+
|
|
34
|
+
# Test the output:
|
|
35
|
+
is "$message" \
|
|
36
|
+
"Subrepo 'bar' pushed to '../../../tmp/upstream/bar' (master)." \
|
|
37
|
+
'push message is correct'
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
(
|
|
41
|
+
cd $OWNER/bar
|
|
42
|
+
git pull
|
|
43
|
+
) &> /dev/null || die
|
|
44
|
+
|
|
45
|
+
# Check that all commits arrived in subrepo
|
|
46
|
+
test-commit-count "$OWNER/bar" HEAD 3
|
|
47
|
+
|
|
48
|
+
test-exists \
|
|
49
|
+
"$OWNER/bar/Bar" \
|
|
50
|
+
"$OWNER/bar/FooBar1" \
|
|
51
|
+
"$OWNER/bar/FooBar2" \
|
|
52
|
+
"!$OWNER/bar/.gitrepo" \
|
|
53
|
+
|
|
54
|
+
done_testing
|
|
55
|
+
|
|
56
|
+
teardown
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
source test/setup
|
|
6
|
+
|
|
7
|
+
use Test::More
|
|
8
|
+
|
|
9
|
+
unset GIT_{AUTHOR,COMMITTER}_{EMAIL,NAME}
|
|
10
|
+
|
|
11
|
+
clone-foo-and-bar
|
|
12
|
+
|
|
13
|
+
# Make various changes to the repos for testing subrepo push:
|
|
14
|
+
(
|
|
15
|
+
# In the main repo:
|
|
16
|
+
cd $OWNER/foo
|
|
17
|
+
|
|
18
|
+
# Clone the subrepo into a subdir
|
|
19
|
+
git subrepo clone ../../../$UPSTREAM/bar
|
|
20
|
+
|
|
21
|
+
# Make a series of commits:
|
|
22
|
+
add-new-files bar/FooBar
|
|
23
|
+
add-new-files ./FooBar
|
|
24
|
+
modify-files bar/FooBar
|
|
25
|
+
modify-files ./FooBar
|
|
26
|
+
modify-files ./FooBar bar/FooBar
|
|
27
|
+
) &> /dev/null || die
|
|
28
|
+
|
|
29
|
+
(
|
|
30
|
+
cd $OWNER/bar
|
|
31
|
+
add-new-files bargy
|
|
32
|
+
git push
|
|
33
|
+
) &> /dev/null || die
|
|
34
|
+
|
|
35
|
+
# Do the subrepo push and test the output:
|
|
36
|
+
{
|
|
37
|
+
message="$(
|
|
38
|
+
cd $OWNER/foo
|
|
39
|
+
git config user.name 'PushUser'
|
|
40
|
+
git config user.email 'push@push'
|
|
41
|
+
git subrepo pull --quiet bar
|
|
42
|
+
git subrepo push bar
|
|
43
|
+
)"
|
|
44
|
+
|
|
45
|
+
# Test the output:
|
|
46
|
+
is "$message" \
|
|
47
|
+
"Subrepo 'bar' pushed to '../../../tmp/upstream/bar' (master)." \
|
|
48
|
+
'push message is correct'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
(
|
|
52
|
+
cd $OWNER/bar
|
|
53
|
+
git pull
|
|
54
|
+
) &> /dev/null || die
|
|
55
|
+
|
|
56
|
+
{
|
|
57
|
+
pullCommit="$(
|
|
58
|
+
cd $OWNER/bar
|
|
59
|
+
git log HEAD -1 --pretty='format:%an %ae %cn %ce'
|
|
60
|
+
)"
|
|
61
|
+
|
|
62
|
+
is "$pullCommit" \
|
|
63
|
+
"PushUser push@push PushUser push@push" \
|
|
64
|
+
"Pull commit has PushUser as both author and committer"
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
{
|
|
68
|
+
subrepoCommit="$(
|
|
69
|
+
cd $OWNER/bar
|
|
70
|
+
git log HEAD^ -1 --pretty='format:%an %ae %cn %ce'
|
|
71
|
+
)"
|
|
72
|
+
|
|
73
|
+
is "$subrepoCommit" \
|
|
74
|
+
"FooUser foo@foo PushUser push@push" \
|
|
75
|
+
"Subrepo commits has FooUser as author but PushUser as committer"
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
# Check that all commits arrived in subrepo
|
|
79
|
+
test-commit-count "$OWNER/bar" HEAD 7
|
|
80
|
+
|
|
81
|
+
# Test foo/bar/.gitrepo file contents:
|
|
82
|
+
gitrepo=$OWNER/foo/bar/.gitrepo
|
|
83
|
+
{
|
|
84
|
+
foo_pull_commit="$(cd $OWNER/foo; git rev-parse HEAD^)"
|
|
85
|
+
bar_head_commit="$(cd $OWNER/bar; git rev-parse HEAD)"
|
|
86
|
+
test-gitrepo-field "remote" "../../../$UPSTREAM/bar"
|
|
87
|
+
test-gitrepo-field "branch" "master"
|
|
88
|
+
test-gitrepo-field "commit" "$bar_head_commit"
|
|
89
|
+
test-gitrepo-field "parent" "$foo_pull_commit"
|
|
90
|
+
test-gitrepo-field "cmdver" "`git subrepo --version`"
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
(
|
|
94
|
+
# In the main repo:
|
|
95
|
+
cd $OWNER/foo
|
|
96
|
+
add-new-files bar/FooBar2
|
|
97
|
+
modify-files bar/FooBar
|
|
98
|
+
) &> /dev/null || die
|
|
99
|
+
|
|
100
|
+
{
|
|
101
|
+
message="$(
|
|
102
|
+
cd $OWNER/foo
|
|
103
|
+
git subrepo push bar
|
|
104
|
+
)"
|
|
105
|
+
|
|
106
|
+
# Test the output:
|
|
107
|
+
is "$message" \
|
|
108
|
+
"Subrepo 'bar' pushed to '../../../tmp/upstream/bar' (master)." \
|
|
109
|
+
'push message is correct'
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
# Pull the changes from UPSTREAM/bar in OWNER/bar
|
|
113
|
+
(
|
|
114
|
+
cd $OWNER/bar
|
|
115
|
+
git pull
|
|
116
|
+
) &> /dev/null || die
|
|
117
|
+
|
|
118
|
+
test-exists \
|
|
119
|
+
"$OWNER/bar/Bar" \
|
|
120
|
+
"$OWNER/bar/FooBar" \
|
|
121
|
+
"$OWNER/bar/bard/" \
|
|
122
|
+
"$OWNER/bar/bargy" \
|
|
123
|
+
"!$OWNER/bar/.gitrepo" \
|
|
124
|
+
|
|
125
|
+
(
|
|
126
|
+
# In the main repo:
|
|
127
|
+
cd $OWNER/foo
|
|
128
|
+
add-new-files bar/FooBar3
|
|
129
|
+
modify-files bar/FooBar
|
|
130
|
+
git subrepo push bar
|
|
131
|
+
add-new-files bar/FooBar4
|
|
132
|
+
modify-files bar/FooBar3
|
|
133
|
+
) &> /dev/null || die
|
|
134
|
+
|
|
135
|
+
{
|
|
136
|
+
message="$(
|
|
137
|
+
cd $OWNER/foo
|
|
138
|
+
git subrepo push bar
|
|
139
|
+
)"
|
|
140
|
+
|
|
141
|
+
# Test the output:
|
|
142
|
+
is "$message" \
|
|
143
|
+
"Subrepo 'bar' pushed to '../../../tmp/upstream/bar' (master)." \
|
|
144
|
+
'Seqential pushes are correct'
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
(
|
|
148
|
+
# In the subrepo
|
|
149
|
+
cd $OWNER/bar
|
|
150
|
+
git pull
|
|
151
|
+
add-new-files barBar2
|
|
152
|
+
git push
|
|
153
|
+
) &> /dev/null || die
|
|
154
|
+
|
|
155
|
+
(
|
|
156
|
+
# In the main repo:
|
|
157
|
+
cd $OWNER/foo
|
|
158
|
+
add-new-files bar/FooBar5
|
|
159
|
+
modify-files bar/FooBar3
|
|
160
|
+
) &> /dev/null || die
|
|
161
|
+
|
|
162
|
+
{
|
|
163
|
+
message="$(
|
|
164
|
+
cd $OWNER/foo
|
|
165
|
+
git subrepo push bar 2>&1 || true
|
|
166
|
+
)"
|
|
167
|
+
|
|
168
|
+
# Test the output:
|
|
169
|
+
is "$message" \
|
|
170
|
+
"git-subrepo: There are new changes upstream, you need to pull first." \
|
|
171
|
+
'Stopped by other push'
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
done_testing
|
|
175
|
+
|
|
176
|
+
teardown
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
source test/setup
|
|
6
|
+
|
|
7
|
+
use Test::More
|
|
8
|
+
|
|
9
|
+
clone-foo-and-bar
|
|
10
|
+
|
|
11
|
+
(
|
|
12
|
+
cd $OWNER/foo
|
|
13
|
+
git subrepo --quiet clone ../../../$UPSTREAM/bar
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
test-exists \
|
|
17
|
+
"$OWNER/foo/bar/bard/"
|
|
18
|
+
|
|
19
|
+
export XYZ=1
|
|
20
|
+
is "$(
|
|
21
|
+
cd $OWNER/foo
|
|
22
|
+
git subrepo --force clone ../../../$UPSTREAM/bar
|
|
23
|
+
)" \
|
|
24
|
+
"Subrepo 'bar' is up to date." \
|
|
25
|
+
"No reclone if same commit"
|
|
26
|
+
|
|
27
|
+
(
|
|
28
|
+
cd $OWNER/foo
|
|
29
|
+
git subrepo --quiet clone --force ../../../$UPSTREAM/bar --branch=refs/tags/A
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
test-exists \
|
|
33
|
+
"!$OWNER/foo/bar/bard/"
|
|
34
|
+
|
|
35
|
+
(
|
|
36
|
+
cd $OWNER/foo
|
|
37
|
+
git subrepo --quiet clone -f ../../../$UPSTREAM/bar --branch=master
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
test-exists \
|
|
41
|
+
"$OWNER/foo/bar/bard/"
|
|
42
|
+
|
|
43
|
+
done_testing
|
|
44
|
+
|
|
45
|
+
teardown
|