t1510: setup case #23
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
5362cbfcf3b8939edc4bd0058d6b8b08d4621234
1 file changed
+267
t/t1510-repo-setup.sh
+267
@@ -3421,4 +3421,271 @@ test_expect_failure '#22.2: at root' '
3421
)
3422
'
3423
3424
+#
3425
+# case #23
3426
+#
3427
+############################################################
3428
+#
3429
+# Input:
3430
+#
3431
+# - GIT_WORK_TREE is set
3432
+# - GIT_DIR is set
3433
+# - core.worktree is set
3434
+# - .git is a directory
3435
+# - core.bare is set
3436
+#
3437
+# Output:
3438
+#
3439
+# core.worktree is overridden by GIT_WORK_TREE -> #19
3440
+
3441
+test_expect_success '#23: setup' '
3442
+ unset GIT_DIR GIT_WORK_TREE &&
3443
+ mkdir 23 23/sub 23/sub/sub 23.wt 23.wt/sub 23/wt 23/wt/sub &&
3444
+ cd 23 &&
3445
+ git init &&
3446
+ git config core.bare true &&
3447
+ git config core.worktree non-existent &&
3448
+ cd ..
3449
+'
3450
+
3451
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
3452
+ cat >23/expected <<EOF &&
3453
+setup: git_dir: .git
3454
+setup: worktree: $TRASH_DIRECTORY/23
3455
+setup: cwd: $TRASH_DIRECTORY/23
3456
+setup: prefix: (null)
3457
+EOF
3458
+ test_repo 23 .git "$TRASH_DIRECTORY/23"
3459
+'
3460
+
3461
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
3462
+ cat >23/expected <<EOF &&
3463
+setup: git_dir: .git
3464
+setup: worktree: $TRASH_DIRECTORY/23
3465
+setup: cwd: $TRASH_DIRECTORY/23
3466
+setup: prefix: (null)
3467
+EOF
3468
+ test_repo 23 .git .
3469
+'
3470
+
3471
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=root at root' '
3472
+ cat >23/expected <<EOF &&
3473
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3474
+setup: worktree: $TRASH_DIRECTORY/23
3475
+setup: cwd: $TRASH_DIRECTORY/23
3476
+setup: prefix: (null)
3477
+EOF
3478
+ test_repo 23 "$TRASH_DIRECTORY/23/.git" "$TRASH_DIRECTORY/23"
3479
+'
3480
+
3481
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
3482
+ cat >23/expected <<EOF &&
3483
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3484
+setup: worktree: $TRASH_DIRECTORY/23
3485
+setup: cwd: $TRASH_DIRECTORY/23
3486
+setup: prefix: (null)
3487
+EOF
3488
+ test_repo 23 "$TRASH_DIRECTORY/23/.git" .
3489
+'
3490
+
3491
+test_expect_success '#23: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
3492
+ cat >23/sub/sub/expected <<EOF &&
3493
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3494
+setup: worktree: $TRASH_DIRECTORY/23
3495
+setup: cwd: $TRASH_DIRECTORY/23
3496
+setup: prefix: sub/sub/
3497
+EOF
3498
+ test_repo 23/sub/sub ../../.git "$TRASH_DIRECTORY/23"
3499
+'
3500
+
3501
+test_expect_success '#23: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
3502
+ cat >23/sub/sub/expected <<EOF &&
3503
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3504
+setup: worktree: $TRASH_DIRECTORY/23
3505
+setup: cwd: $TRASH_DIRECTORY/23
3506
+setup: prefix: sub/sub/
3507
+EOF
3508
+ test_repo 23/sub/sub ../../.git ../..
3509
+'
3510
+
3511
+test_expect_success '#23: GIT_DIR, GIT_WORKTREE=root in subdir' '
3512
+ cat >23/sub/expected <<EOF &&
3513
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3514
+setup: worktree: $TRASH_DIRECTORY/23
3515
+setup: cwd: $TRASH_DIRECTORY/23
3516
+setup: prefix: sub/
3517
+EOF
3518
+ test_repo 23/sub "$TRASH_DIRECTORY/23/.git" "$TRASH_DIRECTORY/23"
3519
+'
3520
+
3521
+test_expect_success '#23: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
3522
+ cat >23/sub/sub/expected <<EOF &&
3523
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3524
+setup: worktree: $TRASH_DIRECTORY/23
3525
+setup: cwd: $TRASH_DIRECTORY/23
3526
+setup: prefix: sub/sub/
3527
+EOF
3528
+ test_repo 23/sub/sub "$TRASH_DIRECTORY/23/.git" ../..
3529
+'
3530
+
3531
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
3532
+ cat >23/expected <<EOF &&
3533
+setup: git_dir: .git
3534
+setup: worktree: $TRASH_DIRECTORY/23/wt
3535
+setup: cwd: $TRASH_DIRECTORY/23
3536
+setup: prefix: (null)
3537
+EOF
3538
+ test_repo 23 .git "$TRASH_DIRECTORY/23/wt"
3539
+'
3540
+
3541
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
3542
+ cat >23/expected <<EOF &&
3543
+setup: git_dir: .git
3544
+setup: worktree: $TRASH_DIRECTORY/23/wt
3545
+setup: cwd: $TRASH_DIRECTORY/23
3546
+setup: prefix: (null)
3547
+EOF
3548
+ test_repo 23 .git wt
3549
+'
3550
+
3551
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
3552
+ cat >23/expected <<EOF &&
3553
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3554
+setup: worktree: $TRASH_DIRECTORY/23/wt
3555
+setup: cwd: $TRASH_DIRECTORY/23
3556
+setup: prefix: (null)
3557
+EOF
3558
+ test_repo 23 "$TRASH_DIRECTORY/23/.git" wt
3559
+'
3560
+
3561
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=wt at root' '
3562
+ cat >23/expected <<EOF &&
3563
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3564
+setup: worktree: $TRASH_DIRECTORY/23/wt
3565
+setup: cwd: $TRASH_DIRECTORY/23
3566
+setup: prefix: (null)
3567
+EOF
3568
+ test_repo 23 "$TRASH_DIRECTORY/23/.git" "$TRASH_DIRECTORY/23/wt"
3569
+'
3570
+
3571
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
3572
+ cat >23/sub/sub/expected <<EOF &&
3573
+setup: git_dir: ../../.git
3574
+setup: worktree: $TRASH_DIRECTORY/23/wt
3575
+setup: cwd: $TRASH_DIRECTORY/23/sub/sub
3576
+setup: prefix: (null)
3577
+EOF
3578
+ test_repo 23/sub/sub ../../.git "$TRASH_DIRECTORY/23/wt"
3579
+'
3580
+
3581
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
3582
+ cat >23/sub/sub/expected <<EOF &&
3583
+setup: git_dir: ../../.git
3584
+setup: worktree: $TRASH_DIRECTORY/23/wt
3585
+setup: cwd: $TRASH_DIRECTORY/23/sub/sub
3586
+setup: prefix: (null)
3587
+EOF
3588
+ test_repo 23/sub/sub ../../.git ../../wt
3589
+'
3590
+
3591
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
3592
+ cat >23/sub/sub/expected <<EOF &&
3593
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3594
+setup: worktree: $TRASH_DIRECTORY/23/wt
3595
+setup: cwd: $TRASH_DIRECTORY/23/sub/sub
3596
+setup: prefix: (null)
3597
+EOF
3598
+ test_repo 23/sub/sub "$TRASH_DIRECTORY/23/.git" ../../wt
3599
+'
3600
+
3601
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
3602
+ cat >23/sub/sub/expected <<EOF &&
3603
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3604
+setup: worktree: $TRASH_DIRECTORY/23/wt
3605
+setup: cwd: $TRASH_DIRECTORY/23/sub/sub
3606
+setup: prefix: (null)
3607
+EOF
3608
+ test_repo 23/sub/sub "$TRASH_DIRECTORY/23/.git" "$TRASH_DIRECTORY/23/wt"
3609
+'
3610
+
3611
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
3612
+ cat >23/expected <<EOF &&
3613
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3614
+setup: worktree: $TRASH_DIRECTORY
3615
+setup: cwd: $TRASH_DIRECTORY
3616
+setup: prefix: 23/
3617
+EOF
3618
+ test_repo 23 .git "$TRASH_DIRECTORY"
3619
+'
3620
+
3621
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
3622
+ cat >23/expected <<EOF &&
3623
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3624
+setup: worktree: $TRASH_DIRECTORY
3625
+setup: cwd: $TRASH_DIRECTORY
3626
+setup: prefix: 23/
3627
+EOF
3628
+ test_repo 23 .git ..
3629
+'
3630
+
3631
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
3632
+ cat >23/expected <<EOF &&
3633
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3634
+setup: worktree: $TRASH_DIRECTORY
3635
+setup: cwd: $TRASH_DIRECTORY
3636
+setup: prefix: 23/
3637
+EOF
3638
+ test_repo 23 "$TRASH_DIRECTORY/23/.git" ..
3639
+'
3640
+
3641
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=.. at root' '
3642
+ cat >23/expected <<EOF &&
3643
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3644
+setup: worktree: $TRASH_DIRECTORY
3645
+setup: cwd: $TRASH_DIRECTORY
3646
+setup: prefix: 23/
3647
+EOF
3648
+ test_repo 23 "$TRASH_DIRECTORY/23/.git" "$TRASH_DIRECTORY"
3649
+'
3650
+
3651
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
3652
+ cat >23/sub/sub/expected <<EOF &&
3653
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3654
+setup: worktree: $TRASH_DIRECTORY
3655
+setup: cwd: $TRASH_DIRECTORY
3656
+setup: prefix: 23/sub/sub/
3657
+EOF
3658
+ test_repo 23/sub/sub ../../.git "$TRASH_DIRECTORY"
3659
+'
3660
+
3661
+test_expect_success '#23: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
3662
+ cat >23/sub/sub/expected <<EOF &&
3663
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3664
+setup: worktree: $TRASH_DIRECTORY
3665
+setup: cwd: $TRASH_DIRECTORY
3666
+setup: prefix: 23/sub/sub/
3667
+EOF
3668
+ test_repo 23/sub/sub ../../.git ../../..
3669
+'
3670
+
3671
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
3672
+ cat >23/sub/sub/expected <<EOF &&
3673
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3674
+setup: worktree: $TRASH_DIRECTORY
3675
+setup: cwd: $TRASH_DIRECTORY
3676
+setup: prefix: 23/sub/sub/
3677
+EOF
3678
+ test_repo 23/sub/sub "$TRASH_DIRECTORY/23/.git" ../../../
3679
+'
3680
+
3681
+test_expect_success '#23: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
3682
+ cat >23/sub/sub/expected <<EOF &&
3683
+setup: git_dir: $TRASH_DIRECTORY/23/.git
3684
+setup: worktree: $TRASH_DIRECTORY
3685
+setup: cwd: $TRASH_DIRECTORY
3686
+setup: prefix: 23/sub/sub/
3687
+EOF
3688
+ test_repo 23/sub/sub "$TRASH_DIRECTORY/23/.git" "$TRASH_DIRECTORY"
3689
+'
3690
+
3691
test_done