t1510: setup case #7
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
561a7e667fb8b589c90b67fe4cac32d03b6f840f
1 file changed
+266
t/t1510-repo-setup.sh
+266
@@ -871,4 +871,270 @@ EOF
871
test_repo 6/sub/sub "$TRASH_DIRECTORY/6/.git"
872
'
873
874
+#
875
+# case #7
876
+#
877
+############################################################
878
+#
879
+# Input:
880
+#
881
+# - GIT_WORK_TREE is set
882
+# - GIT_DIR is set
883
+# - core.worktree is set
884
+# - .git is a directory
885
+# - core.bare is not set, cwd is outside .git
886
+#
887
+# Output:
888
+#
889
+# core.worktree is overridden by GIT_WORK_TREE -> #3
890
+
891
+test_expect_success '#7: setup' '
892
+ unset GIT_DIR GIT_WORK_TREE &&
893
+ mkdir 7 7/sub 7/sub/sub 7.wt 7.wt/sub 7/wt 7/wt/sub &&
894
+ cd 7 &&
895
+ git init &&
896
+ git config core.worktree non-existent &&
897
+ cd ..
898
+'
899
+
900
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
901
+ cat >7/expected <<EOF &&
902
+setup: git_dir: .git
903
+setup: worktree: $TRASH_DIRECTORY/7
904
+setup: cwd: $TRASH_DIRECTORY/7
905
+setup: prefix: (null)
906
+EOF
907
+ test_repo 7 .git "$TRASH_DIRECTORY/7"
908
+'
909
+
910
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
911
+ cat >7/expected <<EOF &&
912
+setup: git_dir: .git
913
+setup: worktree: $TRASH_DIRECTORY/7
914
+setup: cwd: $TRASH_DIRECTORY/7
915
+setup: prefix: (null)
916
+EOF
917
+ test_repo 7 .git .
918
+'
919
+
920
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=root at root' '
921
+ cat >7/expected <<EOF &&
922
+setup: git_dir: $TRASH_DIRECTORY/7/.git
923
+setup: worktree: $TRASH_DIRECTORY/7
924
+setup: cwd: $TRASH_DIRECTORY/7
925
+setup: prefix: (null)
926
+EOF
927
+ test_repo 7 "$TRASH_DIRECTORY/7/.git" "$TRASH_DIRECTORY/7"
928
+'
929
+
930
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
931
+ cat >7/expected <<EOF &&
932
+setup: git_dir: $TRASH_DIRECTORY/7/.git
933
+setup: worktree: $TRASH_DIRECTORY/7
934
+setup: cwd: $TRASH_DIRECTORY/7
935
+setup: prefix: (null)
936
+EOF
937
+ test_repo 7 "$TRASH_DIRECTORY/7/.git" .
938
+'
939
+
940
+test_expect_success '#7: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
941
+ cat >7/sub/sub/expected <<EOF &&
942
+setup: git_dir: $TRASH_DIRECTORY/7/.git
943
+setup: worktree: $TRASH_DIRECTORY/7
944
+setup: cwd: $TRASH_DIRECTORY/7
945
+setup: prefix: sub/sub/
946
+EOF
947
+ test_repo 7/sub/sub ../../.git "$TRASH_DIRECTORY/7"
948
+'
949
+
950
+test_expect_success '#7: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
951
+ cat >7/sub/sub/expected <<EOF &&
952
+setup: git_dir: $TRASH_DIRECTORY/7/.git
953
+setup: worktree: $TRASH_DIRECTORY/7
954
+setup: cwd: $TRASH_DIRECTORY/7
955
+setup: prefix: sub/sub/
956
+EOF
957
+ test_repo 7/sub/sub ../../.git ../..
958
+'
959
+
960
+test_expect_success '#7: GIT_DIR, GIT_WORKTREE=root in subdir' '
961
+ cat >7/sub/expected <<EOF &&
962
+setup: git_dir: $TRASH_DIRECTORY/7/.git
963
+setup: worktree: $TRASH_DIRECTORY/7
964
+setup: cwd: $TRASH_DIRECTORY/7
965
+setup: prefix: sub/
966
+EOF
967
+ test_repo 7/sub "$TRASH_DIRECTORY/7/.git" "$TRASH_DIRECTORY/7"
968
+'
969
+
970
+test_expect_success '#7: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
971
+ cat >7/sub/sub/expected <<EOF &&
972
+setup: git_dir: $TRASH_DIRECTORY/7/.git
973
+setup: worktree: $TRASH_DIRECTORY/7
974
+setup: cwd: $TRASH_DIRECTORY/7
975
+setup: prefix: sub/sub/
976
+EOF
977
+ test_repo 7/sub/sub "$TRASH_DIRECTORY/7/.git" ../..
978
+'
979
+
980
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
981
+ cat >7/expected <<EOF &&
982
+setup: git_dir: .git
983
+setup: worktree: $TRASH_DIRECTORY/7/wt
984
+setup: cwd: $TRASH_DIRECTORY/7
985
+setup: prefix: (null)
986
+EOF
987
+ test_repo 7 .git "$TRASH_DIRECTORY/7/wt"
988
+'
989
+
990
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
991
+ cat >7/expected <<EOF &&
992
+setup: git_dir: .git
993
+setup: worktree: $TRASH_DIRECTORY/7/wt
994
+setup: cwd: $TRASH_DIRECTORY/7
995
+setup: prefix: (null)
996
+EOF
997
+ test_repo 7 .git wt
998
+'
999
+
1000
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
1001
+ cat >7/expected <<EOF &&
1002
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1003
+setup: worktree: $TRASH_DIRECTORY/7/wt
1004
+setup: cwd: $TRASH_DIRECTORY/7
1005
+setup: prefix: (null)
1006
+EOF
1007
+ test_repo 7 "$TRASH_DIRECTORY/7/.git" wt
1008
+'
1009
+
1010
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt at root' '
1011
+ cat >7/expected <<EOF &&
1012
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1013
+setup: worktree: $TRASH_DIRECTORY/7/wt
1014
+setup: cwd: $TRASH_DIRECTORY/7
1015
+setup: prefix: (null)
1016
+EOF
1017
+ test_repo 7 "$TRASH_DIRECTORY/7/.git" "$TRASH_DIRECTORY/7/wt"
1018
+'
1019
+
1020
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
1021
+ cat >7/sub/sub/expected <<EOF &&
1022
+setup: git_dir: ../../.git
1023
+setup: worktree: $TRASH_DIRECTORY/7/wt
1024
+setup: cwd: $TRASH_DIRECTORY/7/sub/sub
1025
+setup: prefix: (null)
1026
+EOF
1027
+ test_repo 7/sub/sub ../../.git "$TRASH_DIRECTORY/7/wt"
1028
+'
1029
+
1030
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
1031
+ cat >7/sub/sub/expected <<EOF &&
1032
+setup: git_dir: ../../.git
1033
+setup: worktree: $TRASH_DIRECTORY/7/wt
1034
+setup: cwd: $TRASH_DIRECTORY/7/sub/sub
1035
+setup: prefix: (null)
1036
+EOF
1037
+ test_repo 7/sub/sub ../../.git ../../wt
1038
+'
1039
+
1040
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
1041
+ cat >7/sub/sub/expected <<EOF &&
1042
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1043
+setup: worktree: $TRASH_DIRECTORY/7/wt
1044
+setup: cwd: $TRASH_DIRECTORY/7/sub/sub
1045
+setup: prefix: (null)
1046
+EOF
1047
+ test_repo 7/sub/sub "$TRASH_DIRECTORY/7/.git" ../../wt
1048
+'
1049
+
1050
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
1051
+ cat >7/sub/sub/expected <<EOF &&
1052
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1053
+setup: worktree: $TRASH_DIRECTORY/7/wt
1054
+setup: cwd: $TRASH_DIRECTORY/7/sub/sub
1055
+setup: prefix: (null)
1056
+EOF
1057
+ test_repo 7/sub/sub "$TRASH_DIRECTORY/7/.git" "$TRASH_DIRECTORY/7/wt"
1058
+'
1059
+
1060
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
1061
+ cat >7/expected <<EOF &&
1062
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1063
+setup: worktree: $TRASH_DIRECTORY
1064
+setup: cwd: $TRASH_DIRECTORY
1065
+setup: prefix: 7/
1066
+EOF
1067
+ test_repo 7 .git "$TRASH_DIRECTORY"
1068
+'
1069
+
1070
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
1071
+ cat >7/expected <<EOF &&
1072
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1073
+setup: worktree: $TRASH_DIRECTORY
1074
+setup: cwd: $TRASH_DIRECTORY
1075
+setup: prefix: 7/
1076
+EOF
1077
+ test_repo 7 .git ..
1078
+'
1079
+
1080
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
1081
+ cat >7/expected <<EOF &&
1082
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1083
+setup: worktree: $TRASH_DIRECTORY
1084
+setup: cwd: $TRASH_DIRECTORY
1085
+setup: prefix: 7/
1086
+EOF
1087
+ test_repo 7 "$TRASH_DIRECTORY/7/.git" ..
1088
+'
1089
+
1090
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=.. at root' '
1091
+ cat >7/expected <<EOF &&
1092
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1093
+setup: worktree: $TRASH_DIRECTORY
1094
+setup: cwd: $TRASH_DIRECTORY
1095
+setup: prefix: 7/
1096
+EOF
1097
+ test_repo 7 "$TRASH_DIRECTORY/7/.git" "$TRASH_DIRECTORY"
1098
+'
1099
+
1100
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
1101
+ cat >7/sub/sub/expected <<EOF &&
1102
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1103
+setup: worktree: $TRASH_DIRECTORY
1104
+setup: cwd: $TRASH_DIRECTORY
1105
+setup: prefix: 7/sub/sub/
1106
+EOF
1107
+ test_repo 7/sub/sub ../../.git "$TRASH_DIRECTORY"
1108
+'
1109
+
1110
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
1111
+ cat >7/sub/sub/expected <<EOF &&
1112
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1113
+setup: worktree: $TRASH_DIRECTORY
1114
+setup: cwd: $TRASH_DIRECTORY
1115
+setup: prefix: 7/sub/sub/
1116
+EOF
1117
+ test_repo 7/sub/sub ../../.git ../../..
1118
+'
1119
+
1120
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
1121
+ cat >7/sub/sub/expected <<EOF &&
1122
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1123
+setup: worktree: $TRASH_DIRECTORY
1124
+setup: cwd: $TRASH_DIRECTORY
1125
+setup: prefix: 7/sub/sub/
1126
+EOF
1127
+ test_repo 7/sub/sub "$TRASH_DIRECTORY/7/.git" ../../../
1128
+'
1129
+
1130
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
1131
+ cat >7/sub/sub/expected <<EOF &&
1132
+setup: git_dir: $TRASH_DIRECTORY/7/.git
1133
+setup: worktree: $TRASH_DIRECTORY
1134
+setup: cwd: $TRASH_DIRECTORY
1135
+setup: prefix: 7/sub/sub/
1136
+EOF
1137
+ test_repo 7/sub/sub "$TRASH_DIRECTORY/7/.git" "$TRASH_DIRECTORY"
1138
+'
1139
+
1140
test_done