t1510: setup case #19
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
09327fd8f77cc7115684902528a5ba31bd6c5cff
1 file changed
+266
t/t1510-repo-setup.sh
+266
@@ -2560,4 +2560,270 @@ EOF
2560
test_repo 18/sub "$TRASH_DIRECTORY/18/.git"
2561
'
2562
2563
+#
2564
+# case #19
2565
+#
2566
+############################################################
2567
+#
2568
+# Input:
2569
+#
2570
+# - GIT_WORK_TREE is set
2571
+# - GIT_DIR is set
2572
+# - .git is a directory
2573
+# - core.worktree is not set
2574
+# - core.bare is set
2575
+#
2576
+# Output:
2577
+#
2578
+# bare repo is overridden by GIT_WORK_TREE -> #3
2579
+
2580
+test_expect_success '#19: setup' '
2581
+ unset GIT_DIR GIT_WORK_TREE &&
2582
+ mkdir 19 19/sub 19/sub/sub 19.wt 19.wt/sub 19/wt 19/wt/sub &&
2583
+ cd 19 &&
2584
+ git init &&
2585
+ git config core.bare true &&
2586
+ cd ..
2587
+'
2588
+
2589
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
2590
+ cat >19/expected <<EOF &&
2591
+setup: git_dir: .git
2592
+setup: worktree: $TRASH_DIRECTORY/19
2593
+setup: cwd: $TRASH_DIRECTORY/19
2594
+setup: prefix: (null)
2595
+EOF
2596
+ test_repo 19 .git "$TRASH_DIRECTORY/19"
2597
+'
2598
+
2599
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
2600
+ cat >19/expected <<EOF &&
2601
+setup: git_dir: .git
2602
+setup: worktree: $TRASH_DIRECTORY/19
2603
+setup: cwd: $TRASH_DIRECTORY/19
2604
+setup: prefix: (null)
2605
+EOF
2606
+ test_repo 19 .git .
2607
+'
2608
+
2609
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=root at root' '
2610
+ cat >19/expected <<EOF &&
2611
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2612
+setup: worktree: $TRASH_DIRECTORY/19
2613
+setup: cwd: $TRASH_DIRECTORY/19
2614
+setup: prefix: (null)
2615
+EOF
2616
+ test_repo 19 "$TRASH_DIRECTORY/19/.git" "$TRASH_DIRECTORY/19"
2617
+'
2618
+
2619
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
2620
+ cat >19/expected <<EOF &&
2621
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2622
+setup: worktree: $TRASH_DIRECTORY/19
2623
+setup: cwd: $TRASH_DIRECTORY/19
2624
+setup: prefix: (null)
2625
+EOF
2626
+ test_repo 19 "$TRASH_DIRECTORY/19/.git" .
2627
+'
2628
+
2629
+test_expect_success '#19: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
2630
+ cat >19/sub/sub/expected <<EOF &&
2631
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2632
+setup: worktree: $TRASH_DIRECTORY/19
2633
+setup: cwd: $TRASH_DIRECTORY/19
2634
+setup: prefix: sub/sub/
2635
+EOF
2636
+ test_repo 19/sub/sub ../../.git "$TRASH_DIRECTORY/19"
2637
+'
2638
+
2639
+test_expect_success '#19: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
2640
+ cat >19/sub/sub/expected <<EOF &&
2641
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2642
+setup: worktree: $TRASH_DIRECTORY/19
2643
+setup: cwd: $TRASH_DIRECTORY/19
2644
+setup: prefix: sub/sub/
2645
+EOF
2646
+ test_repo 19/sub/sub ../../.git ../..
2647
+'
2648
+
2649
+test_expect_success '#19: GIT_DIR, GIT_WORKTREE=root in subdir' '
2650
+ cat >19/sub/expected <<EOF &&
2651
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2652
+setup: worktree: $TRASH_DIRECTORY/19
2653
+setup: cwd: $TRASH_DIRECTORY/19
2654
+setup: prefix: sub/
2655
+EOF
2656
+ test_repo 19/sub "$TRASH_DIRECTORY/19/.git" "$TRASH_DIRECTORY/19"
2657
+'
2658
+
2659
+test_expect_success '#19: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
2660
+ cat >19/sub/sub/expected <<EOF &&
2661
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2662
+setup: worktree: $TRASH_DIRECTORY/19
2663
+setup: cwd: $TRASH_DIRECTORY/19
2664
+setup: prefix: sub/sub/
2665
+EOF
2666
+ test_repo 19/sub/sub "$TRASH_DIRECTORY/19/.git" ../..
2667
+'
2668
+
2669
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
2670
+ cat >19/expected <<EOF &&
2671
+setup: git_dir: .git
2672
+setup: worktree: $TRASH_DIRECTORY/19/wt
2673
+setup: cwd: $TRASH_DIRECTORY/19
2674
+setup: prefix: (null)
2675
+EOF
2676
+ test_repo 19 .git "$TRASH_DIRECTORY/19/wt"
2677
+'
2678
+
2679
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
2680
+ cat >19/expected <<EOF &&
2681
+setup: git_dir: .git
2682
+setup: worktree: $TRASH_DIRECTORY/19/wt
2683
+setup: cwd: $TRASH_DIRECTORY/19
2684
+setup: prefix: (null)
2685
+EOF
2686
+ test_repo 19 .git wt
2687
+'
2688
+
2689
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
2690
+ cat >19/expected <<EOF &&
2691
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2692
+setup: worktree: $TRASH_DIRECTORY/19/wt
2693
+setup: cwd: $TRASH_DIRECTORY/19
2694
+setup: prefix: (null)
2695
+EOF
2696
+ test_repo 19 "$TRASH_DIRECTORY/19/.git" wt
2697
+'
2698
+
2699
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=wt at root' '
2700
+ cat >19/expected <<EOF &&
2701
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2702
+setup: worktree: $TRASH_DIRECTORY/19/wt
2703
+setup: cwd: $TRASH_DIRECTORY/19
2704
+setup: prefix: (null)
2705
+EOF
2706
+ test_repo 19 "$TRASH_DIRECTORY/19/.git" "$TRASH_DIRECTORY/19/wt"
2707
+'
2708
+
2709
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
2710
+ cat >19/sub/sub/expected <<EOF &&
2711
+setup: git_dir: ../../.git
2712
+setup: worktree: $TRASH_DIRECTORY/19/wt
2713
+setup: cwd: $TRASH_DIRECTORY/19/sub/sub
2714
+setup: prefix: (null)
2715
+EOF
2716
+ test_repo 19/sub/sub ../../.git "$TRASH_DIRECTORY/19/wt"
2717
+'
2718
+
2719
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
2720
+ cat >19/sub/sub/expected <<EOF &&
2721
+setup: git_dir: ../../.git
2722
+setup: worktree: $TRASH_DIRECTORY/19/wt
2723
+setup: cwd: $TRASH_DIRECTORY/19/sub/sub
2724
+setup: prefix: (null)
2725
+EOF
2726
+ test_repo 19/sub/sub ../../.git ../../wt
2727
+'
2728
+
2729
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
2730
+ cat >19/sub/sub/expected <<EOF &&
2731
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2732
+setup: worktree: $TRASH_DIRECTORY/19/wt
2733
+setup: cwd: $TRASH_DIRECTORY/19/sub/sub
2734
+setup: prefix: (null)
2735
+EOF
2736
+ test_repo 19/sub/sub "$TRASH_DIRECTORY/19/.git" ../../wt
2737
+'
2738
+
2739
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
2740
+ cat >19/sub/sub/expected <<EOF &&
2741
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2742
+setup: worktree: $TRASH_DIRECTORY/19/wt
2743
+setup: cwd: $TRASH_DIRECTORY/19/sub/sub
2744
+setup: prefix: (null)
2745
+EOF
2746
+ test_repo 19/sub/sub "$TRASH_DIRECTORY/19/.git" "$TRASH_DIRECTORY/19/wt"
2747
+'
2748
+
2749
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
2750
+ cat >19/expected <<EOF &&
2751
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2752
+setup: worktree: $TRASH_DIRECTORY
2753
+setup: cwd: $TRASH_DIRECTORY
2754
+setup: prefix: 19/
2755
+EOF
2756
+ test_repo 19 .git "$TRASH_DIRECTORY"
2757
+'
2758
+
2759
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
2760
+ cat >19/expected <<EOF &&
2761
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2762
+setup: worktree: $TRASH_DIRECTORY
2763
+setup: cwd: $TRASH_DIRECTORY
2764
+setup: prefix: 19/
2765
+EOF
2766
+ test_repo 19 .git ..
2767
+'
2768
+
2769
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
2770
+ cat >19/expected <<EOF &&
2771
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2772
+setup: worktree: $TRASH_DIRECTORY
2773
+setup: cwd: $TRASH_DIRECTORY
2774
+setup: prefix: 19/
2775
+EOF
2776
+ test_repo 19 "$TRASH_DIRECTORY/19/.git" ..
2777
+'
2778
+
2779
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=.. at root' '
2780
+ cat >19/expected <<EOF &&
2781
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2782
+setup: worktree: $TRASH_DIRECTORY
2783
+setup: cwd: $TRASH_DIRECTORY
2784
+setup: prefix: 19/
2785
+EOF
2786
+ test_repo 19 "$TRASH_DIRECTORY/19/.git" "$TRASH_DIRECTORY"
2787
+'
2788
+
2789
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
2790
+ cat >19/sub/sub/expected <<EOF &&
2791
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2792
+setup: worktree: $TRASH_DIRECTORY
2793
+setup: cwd: $TRASH_DIRECTORY
2794
+setup: prefix: 19/sub/sub/
2795
+EOF
2796
+ test_repo 19/sub/sub ../../.git "$TRASH_DIRECTORY"
2797
+'
2798
+
2799
+test_expect_success '#19: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
2800
+ cat >19/sub/sub/expected <<EOF &&
2801
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2802
+setup: worktree: $TRASH_DIRECTORY
2803
+setup: cwd: $TRASH_DIRECTORY
2804
+setup: prefix: 19/sub/sub/
2805
+EOF
2806
+ test_repo 19/sub/sub ../../.git ../../..
2807
+'
2808
+
2809
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
2810
+ cat >19/sub/sub/expected <<EOF &&
2811
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2812
+setup: worktree: $TRASH_DIRECTORY
2813
+setup: cwd: $TRASH_DIRECTORY
2814
+setup: prefix: 19/sub/sub/
2815
+EOF
2816
+ test_repo 19/sub/sub "$TRASH_DIRECTORY/19/.git" ../../../
2817
+'
2818
+
2819
+test_expect_success '#19: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
2820
+ cat >19/sub/sub/expected <<EOF &&
2821
+setup: git_dir: $TRASH_DIRECTORY/19/.git
2822
+setup: worktree: $TRASH_DIRECTORY
2823
+setup: cwd: $TRASH_DIRECTORY
2824
+setup: prefix: 19/sub/sub/
2825
+EOF
2826
+ test_repo 19/sub/sub "$TRASH_DIRECTORY/19/.git" "$TRASH_DIRECTORY"
2827
+'
2828
+
2829
test_done