t1510: setup case #27
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy committed
Nov 26, 2010 at 22:32 UTC
00bc13a9774610de0ea0952d0f011b14c18e52cb
1 file changed
+268
t/t1510-repo-setup.sh
+268
@@ -3854,4 +3854,272 @@ EOF
3854
test_repo 26/sub "$TRASH_DIRECTORY/26/.git"
3855
'
3856
3857
+#
3858
+# case #27
3859
+#
3860
+############################################################
3861
+#
3862
+# Input:
3863
+#
3864
+# - GIT_WORK_TREE is set
3865
+# - GIT_DIR is set
3866
+# - .git is a file
3867
+# - core.worktree is not set
3868
+# - core.bare is set
3869
+#
3870
+# Output:
3871
+#
3872
+# #19 except git_dir is set according to .git file
3873
+
3874
+test_expect_success '#27: setup' '
3875
+ unset GIT_DIR GIT_WORK_TREE &&
3876
+ mkdir 27 27/sub 27/sub/sub 27.wt 27.wt/sub 27/wt 27/wt/sub &&
3877
+ cd 27 &&
3878
+ git init &&
3879
+ git config core.bare true &&
3880
+ mv .git ../27.git &&
3881
+ echo gitdir: ../27.git >.git &&
3882
+ cd ..
3883
+'
3884
+
3885
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
3886
+ cat >27/expected <<EOF &&
3887
+setup: git_dir: $TRASH_DIRECTORY/27.git
3888
+setup: worktree: $TRASH_DIRECTORY/27
3889
+setup: cwd: $TRASH_DIRECTORY/27
3890
+setup: prefix: (null)
3891
+EOF
3892
+ test_repo 27 .git "$TRASH_DIRECTORY/27"
3893
+'
3894
+
3895
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
3896
+ cat >27/expected <<EOF &&
3897
+setup: git_dir: $TRASH_DIRECTORY/27.git
3898
+setup: worktree: $TRASH_DIRECTORY/27
3899
+setup: cwd: $TRASH_DIRECTORY/27
3900
+setup: prefix: (null)
3901
+EOF
3902
+ test_repo 27 .git .
3903
+'
3904
+
3905
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=root at root' '
3906
+ cat >27/expected <<EOF &&
3907
+setup: git_dir: $TRASH_DIRECTORY/27.git
3908
+setup: worktree: $TRASH_DIRECTORY/27
3909
+setup: cwd: $TRASH_DIRECTORY/27
3910
+setup: prefix: (null)
3911
+EOF
3912
+ test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27"
3913
+'
3914
+
3915
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
3916
+ cat >27/expected <<EOF &&
3917
+setup: git_dir: $TRASH_DIRECTORY/27.git
3918
+setup: worktree: $TRASH_DIRECTORY/27
3919
+setup: cwd: $TRASH_DIRECTORY/27
3920
+setup: prefix: (null)
3921
+EOF
3922
+ test_repo 27 "$TRASH_DIRECTORY/27/.git" .
3923
+'
3924
+
3925
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
3926
+ cat >27/sub/sub/expected <<EOF &&
3927
+setup: git_dir: $TRASH_DIRECTORY/27.git
3928
+setup: worktree: $TRASH_DIRECTORY/27
3929
+setup: cwd: $TRASH_DIRECTORY/27
3930
+setup: prefix: sub/sub/
3931
+EOF
3932
+ test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY/27"
3933
+'
3934
+
3935
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
3936
+ cat >27/sub/sub/expected <<EOF &&
3937
+setup: git_dir: $TRASH_DIRECTORY/27.git
3938
+setup: worktree: $TRASH_DIRECTORY/27
3939
+setup: cwd: $TRASH_DIRECTORY/27
3940
+setup: prefix: sub/sub/
3941
+EOF
3942
+ test_repo 27/sub/sub ../../.git ../..
3943
+'
3944
+
3945
+test_expect_failure '#27: GIT_DIR, GIT_WORKTREE=root in subdir' '
3946
+ cat >27/sub/expected <<EOF &&
3947
+setup: git_dir: $TRASH_DIRECTORY/27.git
3948
+setup: worktree: $TRASH_DIRECTORY/27
3949
+setup: cwd: $TRASH_DIRECTORY/27
3950
+setup: prefix: sub/
3951
+EOF
3952
+ test_repo 27/sub "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27"
3953
+'
3954
+
3955
+test_expect_failure '#27: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
3956
+ cat >27/sub/sub/expected <<EOF &&
3957
+setup: git_dir: $TRASH_DIRECTORY/27.git
3958
+setup: worktree: $TRASH_DIRECTORY/27
3959
+setup: cwd: $TRASH_DIRECTORY/27
3960
+setup: prefix: sub/sub/
3961
+EOF
3962
+ test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../..
3963
+'
3964
+
3965
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
3966
+ cat >27/expected <<EOF &&
3967
+setup: git_dir: $TRASH_DIRECTORY/27.git
3968
+setup: worktree: $TRASH_DIRECTORY/27/wt
3969
+setup: cwd: $TRASH_DIRECTORY/27
3970
+setup: prefix: (null)
3971
+EOF
3972
+ test_repo 27 .git "$TRASH_DIRECTORY/27/wt"
3973
+'
3974
+
3975
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
3976
+ cat >27/expected <<EOF &&
3977
+setup: git_dir: $TRASH_DIRECTORY/27.git
3978
+setup: worktree: $TRASH_DIRECTORY/27/wt
3979
+setup: cwd: $TRASH_DIRECTORY/27
3980
+setup: prefix: (null)
3981
+EOF
3982
+ test_repo 27 .git wt
3983
+'
3984
+
3985
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
3986
+ cat >27/expected <<EOF &&
3987
+setup: git_dir: $TRASH_DIRECTORY/27.git
3988
+setup: worktree: $TRASH_DIRECTORY/27/wt
3989
+setup: cwd: $TRASH_DIRECTORY/27
3990
+setup: prefix: (null)
3991
+EOF
3992
+ test_repo 27 "$TRASH_DIRECTORY/27/.git" wt
3993
+'
3994
+
3995
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt at root' '
3996
+ cat >27/expected <<EOF &&
3997
+setup: git_dir: $TRASH_DIRECTORY/27.git
3998
+setup: worktree: $TRASH_DIRECTORY/27/wt
3999
+setup: cwd: $TRASH_DIRECTORY/27
4000
+setup: prefix: (null)
4001
+EOF
4002
+ test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27/wt"
4003
+'
4004
+
4005
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
4006
+ cat >27/sub/sub/expected <<EOF &&
4007
+setup: git_dir: $TRASH_DIRECTORY/27.git
4008
+setup: worktree: $TRASH_DIRECTORY/27/wt
4009
+setup: cwd: $TRASH_DIRECTORY/27/sub/sub
4010
+setup: prefix: (null)
4011
+EOF
4012
+ test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY/27/wt"
4013
+'
4014
+
4015
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
4016
+ cat >27/sub/sub/expected <<EOF &&
4017
+setup: git_dir: $TRASH_DIRECTORY/27.git
4018
+setup: worktree: $TRASH_DIRECTORY/27/wt
4019
+setup: cwd: $TRASH_DIRECTORY/27/sub/sub
4020
+setup: prefix: (null)
4021
+EOF
4022
+ test_repo 27/sub/sub ../../.git ../../wt
4023
+'
4024
+
4025
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
4026
+ cat >27/sub/sub/expected <<EOF &&
4027
+setup: git_dir: $TRASH_DIRECTORY/27.git
4028
+setup: worktree: $TRASH_DIRECTORY/27/wt
4029
+setup: cwd: $TRASH_DIRECTORY/27/sub/sub
4030
+setup: prefix: (null)
4031
+EOF
4032
+ test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../../wt
4033
+'
4034
+
4035
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
4036
+ cat >27/sub/sub/expected <<EOF &&
4037
+setup: git_dir: $TRASH_DIRECTORY/27.git
4038
+setup: worktree: $TRASH_DIRECTORY/27/wt
4039
+setup: cwd: $TRASH_DIRECTORY/27/sub/sub
4040
+setup: prefix: (null)
4041
+EOF
4042
+ test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27/wt"
4043
+'
4044
+
4045
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
4046
+ cat >27/expected <<EOF &&
4047
+setup: git_dir: $TRASH_DIRECTORY/27.git
4048
+setup: worktree: $TRASH_DIRECTORY
4049
+setup: cwd: $TRASH_DIRECTORY
4050
+setup: prefix: 27/
4051
+EOF
4052
+ test_repo 27 .git "$TRASH_DIRECTORY"
4053
+'
4054
+
4055
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
4056
+ cat >27/expected <<EOF &&
4057
+setup: git_dir: $TRASH_DIRECTORY/27.git
4058
+setup: worktree: $TRASH_DIRECTORY
4059
+setup: cwd: $TRASH_DIRECTORY
4060
+setup: prefix: 27/
4061
+EOF
4062
+ test_repo 27 .git ..
4063
+'
4064
+
4065
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
4066
+ cat >27/expected <<EOF &&
4067
+setup: git_dir: $TRASH_DIRECTORY/27.git
4068
+setup: worktree: $TRASH_DIRECTORY
4069
+setup: cwd: $TRASH_DIRECTORY
4070
+setup: prefix: 27/
4071
+EOF
4072
+ test_repo 27 "$TRASH_DIRECTORY/27/.git" ..
4073
+'
4074
+
4075
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=.. at root' '
4076
+ cat >27/expected <<EOF &&
4077
+setup: git_dir: $TRASH_DIRECTORY/27.git
4078
+setup: worktree: $TRASH_DIRECTORY
4079
+setup: cwd: $TRASH_DIRECTORY
4080
+setup: prefix: 27/
4081
+EOF
4082
+ test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY"
4083
+'
4084
+
4085
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
4086
+ cat >27/sub/sub/expected <<EOF &&
4087
+setup: git_dir: $TRASH_DIRECTORY/27.git
4088
+setup: worktree: $TRASH_DIRECTORY
4089
+setup: cwd: $TRASH_DIRECTORY
4090
+setup: prefix: 27/sub/sub/
4091
+EOF
4092
+ test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY"
4093
+'
4094
+
4095
+test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
4096
+ cat >27/sub/sub/expected <<EOF &&
4097
+setup: git_dir: $TRASH_DIRECTORY/27.git
4098
+setup: worktree: $TRASH_DIRECTORY
4099
+setup: cwd: $TRASH_DIRECTORY
4100
+setup: prefix: 27/sub/sub/
4101
+EOF
4102
+ test_repo 27/sub/sub ../../.git ../../..
4103
+'
4104
+
4105
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
4106
+ cat >27/sub/sub/expected <<EOF &&
4107
+setup: git_dir: $TRASH_DIRECTORY/27.git
4108
+setup: worktree: $TRASH_DIRECTORY
4109
+setup: cwd: $TRASH_DIRECTORY
4110
+setup: prefix: 27/sub/sub/
4111
+EOF
4112
+ test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../../../
4113
+'
4114
+
4115
+test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
4116
+ cat >27/sub/sub/expected <<EOF &&
4117
+setup: git_dir: $TRASH_DIRECTORY/27.git
4118
+setup: worktree: $TRASH_DIRECTORY
4119
+setup: cwd: $TRASH_DIRECTORY
4120
+setup: prefix: 27/sub/sub/
4121
+EOF
4122
+ test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY"
4123
+'
4124
+
4125
test_done