Add testcases showing how pathspecs are handled with rev-list --objects
Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren committed
Sep 20, 2010 at 09:24 UTC
a97a96fc9667cd84dc350db309135ea52adac18d
1 file changed
+51
t/t6000-rev-list-misc.sh
new
+51
@@ -0,0 +1,51 @@
1
+#!/bin/sh
2
+
3
+test_description='miscellaneous rev-list tests'
4
+
5
+. ./test-lib.sh
6
+
7
+test_expect_success setup '
8
+ echo content1 >wanted_file &&
9
+ echo content2 >unwanted_file &&
10
+ git add wanted_file unwanted_file &&
11
+ git commit -m one
12
+'
13
+
14
+test_expect_success 'rev-list --objects heeds pathspecs' '
15
+ git rev-list --objects HEAD -- wanted_file >output &&
16
+ grep wanted_file output &&
17
+ ! grep unwanted_file output
18
+'
19
+
20
+test_expect_success 'rev-list --objects with pathspecs and deeper paths' '
21
+ mkdir foo &&
22
+ >foo/file &&
23
+ git add foo/file &&
24
+ git commit -m two &&
25
+
26
+ git rev-list --objects HEAD -- foo >output &&
27
+ grep foo/file output &&
28
+
29
+ git rev-list --objects HEAD -- foo/file >output &&
30
+ grep foo/file output &&
31
+ ! grep unwanted_file output
32
+'
33
+
34
+test_expect_success 'rev-list --objects with pathspecs and copied files' '
35
+ git checkout --orphan junio-testcase &&
36
+ git rm -rf . &&
37
+
38
+ mkdir two &&
39
+ echo frotz >one &&
40
+ cp one two/three &&
41
+ git add one two/three &&
42
+ test_tick &&
43
+ git commit -m that &&
44
+
45
+ ONE=$(git rev-parse HEAD:one)
46
+ git rev-list --objects HEAD two >output &&
47
+ grep "$ONE two/three" output &&
48
+ ! grep one output
49
+'
50
+
51
+test_done