@matheusbsbs / matheus-bagliano / commits / fd4e1888ae
Fork 0

t1510: setup case #22

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 fd4e1888ae16978ce687de25409ee36eb11138ad
1 file changed +337
t/t1510-repo-setup.sh
+337
@@ -3084,4 +3084,341 @@ EOF
3084 test_repo 21/sub
3085 '
3086
3087 +#
3088 +# case #22.1
3089 +#
3090 +############################################################
3091 +#
3092 +# Input:
3093 +#
3094 +# - GIT_WORK_TREE is not set
3095 +# - GIT_DIR is set
3096 +# - core.worktree is set
3097 +# - .git is a directory
3098 +# - cwd is inside .git
3099 +#
3100 +# Output:
3101 +#
3102 +# bare attribute is ignored
3103 +#
3104 +# - worktree is at core.worktree
3105 +# - cwd is at worktree root
3106 +# - prefix is calculated
3107 +# - git_dir is at $GIT_DIR
3108 +# - cwd can be outside worktree
3109 +
3110 +test_expect_success '#22.1: setup' '
3111 + unset GIT_DIR GIT_WORK_TREE &&
3112 + mkdir 22 &&
3113 + cd 22 &&
3114 + git init &&
3115 + mkdir .git/sub .git/wt .git/wt/sub &&
3116 + cd ..
3117 +'
3118 +
3119 +test_expect_success '#22.1: GIT_DIR(rel), core.worktree=. at .git' '
3120 + cat >22/.git/expected <<EOF &&
3121 +setup: git_dir: .
3122 +setup: worktree: $TRASH_DIRECTORY/22/.git
3123 +setup: cwd: $TRASH_DIRECTORY/22/.git
3124 +setup: prefix: (null)
3125 +EOF
3126 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git" &&
3127 + test_repo 22/.git .
3128 +'
3129 +
3130 +test_expect_success '#22.1: GIT_DIR(rel), core.worktree=.(rel) at .git' '
3131 + cat >22/.git/expected <<EOF &&
3132 +setup: git_dir: .
3133 +setup: worktree: $TRASH_DIRECTORY/22/.git
3134 +setup: cwd: $TRASH_DIRECTORY/22/.git
3135 +setup: prefix: (null)
3136 +EOF
3137 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree . &&
3138 + test_repo 22/.git .
3139 +'
3140 +
3141 +test_expect_success '#22.1: GIT_DIR, core.worktree=. at .git' '
3142 + cat >22/.git/expected <<EOF &&
3143 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3144 +setup: worktree: $TRASH_DIRECTORY/22/.git
3145 +setup: cwd: $TRASH_DIRECTORY/22/.git
3146 +setup: prefix: (null)
3147 +EOF
3148 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git" &&
3149 + test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
3150 +'
3151 +
3152 +test_expect_success '#22.1: GIT_DIR, core.worktree=.(rel) at root' '
3153 + cat >22/.git/expected <<EOF &&
3154 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3155 +setup: worktree: $TRASH_DIRECTORY/22/.git
3156 +setup: cwd: $TRASH_DIRECTORY/22/.git
3157 +setup: prefix: (null)
3158 +EOF
3159 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree . &&
3160 + test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
3161 +'
3162 +
3163 +test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=. in .git/sub' '
3164 + cat >22/.git/sub/expected <<EOF &&
3165 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3166 +setup: worktree: $TRASH_DIRECTORY/22/.git
3167 +setup: cwd: $TRASH_DIRECTORY/22/.git
3168 +setup: prefix: sub/
3169 +EOF
3170 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git" &&
3171 + test_repo 22/.git/sub ..
3172 +'
3173 +
3174 +test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.(rel) in .git/sub' '
3175 + cat >22/.git/sub/expected <<EOF &&
3176 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3177 +setup: worktree: $TRASH_DIRECTORY/22/.git
3178 +setup: cwd: $TRASH_DIRECTORY/22/.git
3179 +setup: prefix: sub/
3180 +EOF
3181 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree . &&
3182 + test_repo 22/.git/sub/ ..
3183 +'
3184 +
3185 +test_expect_success '#22.1: GIT_DIR, core.worktree=. in .git/sub' '
3186 + cat >22/.git/sub/expected <<EOF &&
3187 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3188 +setup: worktree: $TRASH_DIRECTORY/22/.git
3189 +setup: cwd: $TRASH_DIRECTORY/22/.git
3190 +setup: prefix: sub/
3191 +EOF
3192 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git" &&
3193 + test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
3194 +'
3195 +
3196 +test_expect_success '#22.1: GIT_DIR, core.worktree=.(rel) in .git/sub' '
3197 + cat >22/.git/sub/expected <<EOF &&
3198 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3199 +setup: worktree: $TRASH_DIRECTORY/22/.git
3200 +setup: cwd: $TRASH_DIRECTORY/22/.git
3201 +setup: prefix: sub/
3202 +EOF
3203 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree . &&
3204 + test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
3205 +'
3206 +
3207 +test_expect_success '#22.1: GIT_DIR(rel), core.worktree=wt at .git' '
3208 + cat >22/.git/expected <<EOF &&
3209 +setup: git_dir: .
3210 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3211 +setup: cwd: $TRASH_DIRECTORY/22/.git
3212 +setup: prefix: (null)
3213 +EOF
3214 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git/wt" &&
3215 + test_repo 22/.git .
3216 +'
3217 +
3218 +test_expect_success '#22.1: GIT_DIR(rel), core.worktree=wt(rel) at .git' '
3219 + cat >22/.git/expected <<EOF &&
3220 +setup: git_dir: .
3221 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3222 +setup: cwd: $TRASH_DIRECTORY/22/.git
3223 +setup: prefix: (null)
3224 +EOF
3225 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree wt &&
3226 + test_repo 22/.git .
3227 +'
3228 +
3229 +test_expect_success '#22.1: GIT_DIR, core.worktree=wt(rel) at .git' '
3230 + cat >22/.git/expected <<EOF &&
3231 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3232 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3233 +setup: cwd: $TRASH_DIRECTORY/22/.git
3234 +setup: prefix: (null)
3235 +EOF
3236 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree wt &&
3237 + test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
3238 +'
3239 +
3240 +test_expect_success '#22.1: GIT_DIR, core.worktree=wt at .git' '
3241 + cat >22/.git/expected <<EOF &&
3242 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3243 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3244 +setup: cwd: $TRASH_DIRECTORY/22/.git
3245 +setup: prefix: (null)
3246 +EOF
3247 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git/wt" &&
3248 + test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
3249 +'
3250 +
3251 +test_expect_success '#22.1: GIT_DIR(rel), core.worktree=wt in .git/sub' '
3252 + cat >22/.git/sub/expected <<EOF &&
3253 +setup: git_dir: ..
3254 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3255 +setup: cwd: $TRASH_DIRECTORY/22/.git/sub
3256 +setup: prefix: (null)
3257 +EOF
3258 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git/wt" &&
3259 + test_repo 22/.git/sub ..
3260 +'
3261 +
3262 +test_expect_success '#22.1: GIT_DIR(rel), core.worktree=wt(rel) in .git/sub' '
3263 + cat >22/.git/sub/expected <<EOF &&
3264 +setup: git_dir: ..
3265 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3266 +setup: cwd: $TRASH_DIRECTORY/22/.git/sub
3267 +setup: prefix: (null)
3268 +EOF
3269 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree wt &&
3270 + test_repo 22/.git/sub ..
3271 +'
3272 +
3273 +test_expect_success '#22.1: GIT_DIR, core.worktree=wt(rel) in .git/sub' '
3274 + cat >22/.git/sub/expected <<EOF &&
3275 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3276 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3277 +setup: cwd: $TRASH_DIRECTORY/22/.git/sub
3278 +setup: prefix: (null)
3279 +EOF
3280 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree wt &&
3281 + test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
3282 +'
3283 +
3284 +test_expect_success '#22.1: GIT_DIR, core.worktree=wt in .git/sub' '
3285 + cat >22/.git/sub/expected <<EOF &&
3286 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3287 +setup: worktree: $TRASH_DIRECTORY/22/.git/wt
3288 +setup: cwd: $TRASH_DIRECTORY/22/.git/sub
3289 +setup: prefix: (null)
3290 +EOF
3291 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22/.git/wt" &&
3292 + test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
3293 +'
3294 +
3295 +test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.. at .git' '
3296 + cat >22/.git/expected <<EOF &&
3297 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3298 +setup: worktree: $TRASH_DIRECTORY/22
3299 +setup: cwd: $TRASH_DIRECTORY/22
3300 +setup: prefix: .git/
3301 +EOF
3302 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22" &&
3303 + test_repo 22/.git .
3304 +'
3305 +
3306 +test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=..(rel) at .git' '
3307 + cat >22/.git/expected <<EOF &&
3308 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3309 +setup: worktree: $TRASH_DIRECTORY/22
3310 +setup: cwd: $TRASH_DIRECTORY/22
3311 +setup: prefix: .git/
3312 +EOF
3313 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree .. &&
3314 + test_repo 22/.git .
3315 +'
3316 +
3317 +test_expect_success '#22.1: GIT_DIR, core.worktree=..(rel) at .git' '
3318 + cat >22/.git/expected <<EOF &&
3319 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3320 +setup: worktree: $TRASH_DIRECTORY/22
3321 +setup: cwd: $TRASH_DIRECTORY/22
3322 +setup: prefix: .git/
3323 +EOF
3324 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree .. &&
3325 + test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
3326 +'
3327 +
3328 +test_expect_success '#22.1: GIT_DIR, core.worktree=.. at .git' '
3329 + cat >22/.git/expected <<EOF &&
3330 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3331 +setup: worktree: $TRASH_DIRECTORY/22
3332 +setup: cwd: $TRASH_DIRECTORY/22
3333 +setup: prefix: .git/
3334 +EOF
3335 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22" &&
3336 + test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
3337 +'
3338 +
3339 +test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.. in .git/sub' '
3340 + cat >22/.git/sub/expected <<EOF &&
3341 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3342 +setup: worktree: $TRASH_DIRECTORY/22
3343 +setup: cwd: $TRASH_DIRECTORY/22
3344 +setup: prefix: .git/sub/
3345 +EOF
3346 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22" &&
3347 + test_repo 22/.git/sub ..
3348 +'
3349 +
3350 +test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=..(rel) in .git/sub' '
3351 + cat >22/.git/sub/expected <<EOF &&
3352 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3353 +setup: worktree: $TRASH_DIRECTORY/22
3354 +setup: cwd: $TRASH_DIRECTORY/22
3355 +setup: prefix: .git/sub/
3356 +EOF
3357 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree .. &&
3358 + test_repo 22/.git/sub ..
3359 +'
3360 +
3361 +test_expect_success '#22.1: GIT_DIR, core.worktree=..(rel) in .git/sub' '
3362 + cat >22/.git/sub/expected <<EOF &&
3363 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3364 +setup: worktree: $TRASH_DIRECTORY/22
3365 +setup: cwd: $TRASH_DIRECTORY/22
3366 +setup: prefix: .git/sub/
3367 +EOF
3368 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree .. &&
3369 + test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
3370 +'
3371 +
3372 +test_expect_success '#22.1: GIT_DIR, core.worktree=.. in .git/sub' '
3373 + cat >22/.git/sub/expected <<EOF &&
3374 +setup: git_dir: $TRASH_DIRECTORY/22/.git
3375 +setup: worktree: $TRASH_DIRECTORY/22
3376 +setup: cwd: $TRASH_DIRECTORY/22
3377 +setup: prefix: .git/sub/
3378 +EOF
3379 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.worktree "$TRASH_DIRECTORY/22" &&
3380 + test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
3381 +'
3382 +
3383 +#
3384 +# case #22.2
3385 +#
3386 +############################################################
3387 +#
3388 +# Input:
3389 +#
3390 +# - GIT_WORK_TREE is not set
3391 +# - GIT_DIR is set
3392 +# - core.worktree is set
3393 +# - .git is a directory
3394 +# - core.bare is set
3395 +#
3396 +# Output:
3397 +#
3398 +# core.worktree and core.bare conflict, won't fly.
3399 +
3400 +test_expect_success '#22.2: setup' '
3401 + git config --file="$TRASH_DIRECTORY/22/.git/config" core.bare true
3402 +'
3403 +
3404 +test_expect_failure '#22.2: at .git' '
3405 + (
3406 + cd 22/.git &&
3407 + GIT_DIR=. &&
3408 + export GIT_DIR &&
3409 + test_must_fail git symbolic-ref HEAD 2>result &&
3410 + grep "core.bare and core.worktree do not make sense" result
3411 + )
3412 +'
3413 +
3414 +test_expect_failure '#22.2: at root' '
3415 + (
3416 + cd 22 &&
3417 + GIT_DIR=.git &&
3418 + export GIT_DIR &&
3419 + test_must_fail git symbolic-ref HEAD 2>result &&
3420 + grep "core.bare and core.worktree do not make sense" result
3421 + )
3422 +'
3423 +
3424 test_done