Mercurial > hg-stable
diff tests/test-subrepo-git.t @ 23523:01a8dfc79cdc
subrepo: add partial diff support for git subrepos
So far, git subrepositories were silently ignored for diffs.
This patch adds support for git subrepositories,
with the remark that --include and --exclude are not supported.
If --include or --exclude are used, the subrepo is ignored.
author | Mathias De Maré <mathias.demare@gmail.com> |
---|---|
date | Wed, 10 Dec 2014 10:32:51 +0100 |
parents | 2d86f4e38c08 |
children | 8b5adc6b72ae |
line wrap: on
line diff
--- a/tests/test-subrepo-git.t Wed Dec 10 08:41:21 2014 +0100 +++ b/tests/test-subrepo-git.t Wed Dec 10 10:32:51 2014 +0100 @@ -103,6 +103,15 @@ $ echo ggg >> s/g $ hg status --subrepos M s/g + $ hg diff --subrepos + diff --git a/s/g b/s/g + index 089258f..85341ee 100644 + --- a/s/g + +++ b/s/g + @@ -1,2 +1,3 @@ + g + gg + +ggg (no-eol) $ hg commit --subrepos -m ggg committing subrepository s $ hg debugsub @@ -664,4 +673,112 @@ checking out detached HEAD in subrepo s check out a git branch if you intend to make changes +check differences made by most recent change + $ cd s + $ cat > foobar << EOF + > woopwoop + > + > foo + > bar + > EOF + $ git add foobar $ cd .. + + $ hg diff --subrepos + diff --git a/s/foobar b/s/foobar + new file mode 100644 + index 0000000..8a5a5e2 + --- /dev/null + +++ b/s/foobar + @@ -0,0 +1,4 @@ + +woopwoop + + + +foo + +bar (no-eol) + + $ hg commit --subrepos -m "Added foobar" + committing subrepository s + created new head + + $ hg diff -c . --subrepos --nodates + diff -r af6d2edbb0d3 -r 255ee8cf690e .hgsubstate + --- a/.hgsubstate + +++ b/.hgsubstate + @@ -1,1 +1,1 @@ + -32a343883b74769118bb1d3b4b1fbf9156f4dddc s + +fd4dbf828a5b2fcd36b2bcf21ea773820970d129 s + diff --git a/s/foobar b/s/foobar + new file mode 100644 + index 0000000..8a5a5e2 + --- /dev/null + +++ b/s/foobar + @@ -0,0 +1,4 @@ + +woopwoop + + + +foo + +bar (no-eol) + +check output when only diffing the subrepository + $ hg diff -c . --subrepos s + diff --git a/s/foobar b/s/foobar + new file mode 100644 + index 0000000..8a5a5e2 + --- /dev/null + +++ b/s/foobar + @@ -0,0 +1,4 @@ + +woopwoop + + + +foo + +bar (no-eol) + +check output when diffing something else + $ hg diff -c . --subrepos .hgsubstate --nodates + diff -r af6d2edbb0d3 -r 255ee8cf690e .hgsubstate + --- a/.hgsubstate + +++ b/.hgsubstate + @@ -1,1 +1,1 @@ + -32a343883b74769118bb1d3b4b1fbf9156f4dddc s + +fd4dbf828a5b2fcd36b2bcf21ea773820970d129 s + +add new changes, including whitespace + $ cd s + $ cat > foobar << EOF + > woop woop + > + > foo + > bar + > EOF + $ echo foo > barfoo + $ git add barfoo + $ cd .. + + $ hg diff --subrepos --ignore-all-space + diff --git a/s/barfoo b/s/barfoo + new file mode 100644 + index 0000000..257cc56 + --- /dev/null + +++ b/s/barfoo + @@ -0,0 +1 @@ + +foo (no-eol) + $ hg diff --subrepos s/foobar + diff --git a/s/foobar b/s/foobar + index 8a5a5e2..bd5812a 100644 + --- a/s/foobar + +++ b/s/foobar + @@ -1,4 +1,4 @@ + -woopwoop + +woop woop + + foo + bar (no-eol) + + $ hg diff --subrepos --stat + barfoo | 1 + + foobar | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) (no-eol) + +ensure adding include/exclude ignores the subrepo + $ hg diff --subrepos -I s/foobar + $ hg diff --subrepos -X s/foobar + + $ cd ..