t1510: setup case #11
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
3c3b0a00924aeb6a5e5534341299c6dc7824dd49
1 file changed
+267
t/t1510-repo-setup.sh
+267
@@ -1300,4 +1300,271 @@ EOF
1300
test_repo 10/sub ../.git
1301
'
1302
1303
+#
1304
+# case #11
1305
+#
1306
+############################################################
1307
+#
1308
+# Input:
1309
+#
1310
+# - GIT_WORK_TREE is set
1311
+# - GIT_DIR is set
1312
+# - core.worktree is not set
1313
+# - .git is a file
1314
+# - core.bare is not set, cwd is outside .git
1315
+#
1316
+# Output:
1317
+#
1318
+# #3 except that git_dir is set by .git file
1319
+
1320
+test_expect_success '#11: setup' '
1321
+ unset GIT_DIR GIT_WORK_TREE &&
1322
+ mkdir 11 11/sub 11/sub/sub 11.wt 11.wt/sub 11/wt 11/wt/sub &&
1323
+ cd 11 &&
1324
+ git init &&
1325
+ mv .git ../11.git &&
1326
+ echo gitdir: ../11.git >.git &&
1327
+ cd ..
1328
+'
1329
+
1330
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
1331
+ cat >11/expected <<EOF &&
1332
+setup: git_dir: $TRASH_DIRECTORY/11.git
1333
+setup: worktree: $TRASH_DIRECTORY/11
1334
+setup: cwd: $TRASH_DIRECTORY/11
1335
+setup: prefix: (null)
1336
+EOF
1337
+ test_repo 11 .git "$TRASH_DIRECTORY/11"
1338
+'
1339
+
1340
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
1341
+ cat >11/expected <<EOF &&
1342
+setup: git_dir: $TRASH_DIRECTORY/11.git
1343
+setup: worktree: $TRASH_DIRECTORY/11
1344
+setup: cwd: $TRASH_DIRECTORY/11
1345
+setup: prefix: (null)
1346
+EOF
1347
+ test_repo 11 .git .
1348
+'
1349
+
1350
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=root at root' '
1351
+ cat >11/expected <<EOF &&
1352
+setup: git_dir: $TRASH_DIRECTORY/11.git
1353
+setup: worktree: $TRASH_DIRECTORY/11
1354
+setup: cwd: $TRASH_DIRECTORY/11
1355
+setup: prefix: (null)
1356
+EOF
1357
+ test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11"
1358
+'
1359
+
1360
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
1361
+ cat >11/expected <<EOF &&
1362
+setup: git_dir: $TRASH_DIRECTORY/11.git
1363
+setup: worktree: $TRASH_DIRECTORY/11
1364
+setup: cwd: $TRASH_DIRECTORY/11
1365
+setup: prefix: (null)
1366
+EOF
1367
+ test_repo 11 "$TRASH_DIRECTORY/11/.git" .
1368
+'
1369
+
1370
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
1371
+ cat >11/sub/sub/expected <<EOF &&
1372
+setup: git_dir: $TRASH_DIRECTORY/11.git
1373
+setup: worktree: $TRASH_DIRECTORY/11
1374
+setup: cwd: $TRASH_DIRECTORY/11
1375
+setup: prefix: sub/sub/
1376
+EOF
1377
+ test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY/11"
1378
+'
1379
+
1380
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
1381
+ cat >11/sub/sub/expected <<EOF &&
1382
+setup: git_dir: $TRASH_DIRECTORY/11.git
1383
+setup: worktree: $TRASH_DIRECTORY/11
1384
+setup: cwd: $TRASH_DIRECTORY/11
1385
+setup: prefix: sub/sub/
1386
+EOF
1387
+ test_repo 11/sub/sub ../../.git ../..
1388
+'
1389
+
1390
+test_expect_failure '#11: GIT_DIR, GIT_WORKTREE=root in subdir' '
1391
+ cat >11/sub/expected <<EOF &&
1392
+setup: git_dir: $TRASH_DIRECTORY/11.git
1393
+setup: worktree: $TRASH_DIRECTORY/11
1394
+setup: cwd: $TRASH_DIRECTORY/11
1395
+setup: prefix: sub/
1396
+EOF
1397
+ test_repo 11/sub "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11"
1398
+'
1399
+
1400
+test_expect_failure '#11: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
1401
+ cat >11/sub/sub/expected <<EOF &&
1402
+setup: git_dir: $TRASH_DIRECTORY/11.git
1403
+setup: worktree: $TRASH_DIRECTORY/11
1404
+setup: cwd: $TRASH_DIRECTORY/11
1405
+setup: prefix: sub/sub/
1406
+EOF
1407
+ test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../..
1408
+'
1409
+
1410
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
1411
+ cat >11/expected <<EOF &&
1412
+setup: git_dir: $TRASH_DIRECTORY/11.git
1413
+setup: worktree: $TRASH_DIRECTORY/11/wt
1414
+setup: cwd: $TRASH_DIRECTORY/11
1415
+setup: prefix: (null)
1416
+EOF
1417
+ test_repo 11 .git "$TRASH_DIRECTORY/11/wt"
1418
+'
1419
+
1420
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
1421
+ cat >11/expected <<EOF &&
1422
+setup: git_dir: $TRASH_DIRECTORY/11.git
1423
+setup: worktree: $TRASH_DIRECTORY/11/wt
1424
+setup: cwd: $TRASH_DIRECTORY/11
1425
+setup: prefix: (null)
1426
+EOF
1427
+ test_repo 11 .git wt
1428
+'
1429
+
1430
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
1431
+ cat >11/expected <<EOF &&
1432
+setup: git_dir: $TRASH_DIRECTORY/11.git
1433
+setup: worktree: $TRASH_DIRECTORY/11/wt
1434
+setup: cwd: $TRASH_DIRECTORY/11
1435
+setup: prefix: (null)
1436
+EOF
1437
+ test_repo 11 "$TRASH_DIRECTORY/11/.git" wt
1438
+'
1439
+
1440
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt at root' '
1441
+ cat >11/expected <<EOF &&
1442
+setup: git_dir: $TRASH_DIRECTORY/11.git
1443
+setup: worktree: $TRASH_DIRECTORY/11/wt
1444
+setup: cwd: $TRASH_DIRECTORY/11
1445
+setup: prefix: (null)
1446
+EOF
1447
+ test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11/wt"
1448
+'
1449
+
1450
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
1451
+ cat >11/sub/sub/expected <<EOF &&
1452
+setup: git_dir: $TRASH_DIRECTORY/11.git
1453
+setup: worktree: $TRASH_DIRECTORY/11/wt
1454
+setup: cwd: $TRASH_DIRECTORY/11/sub/sub
1455
+setup: prefix: (null)
1456
+EOF
1457
+ test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY/11/wt"
1458
+'
1459
+
1460
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
1461
+ cat >11/sub/sub/expected <<EOF &&
1462
+setup: git_dir: $TRASH_DIRECTORY/11.git
1463
+setup: worktree: $TRASH_DIRECTORY/11/wt
1464
+setup: cwd: $TRASH_DIRECTORY/11/sub/sub
1465
+setup: prefix: (null)
1466
+EOF
1467
+ test_repo 11/sub/sub ../../.git ../../wt
1468
+'
1469
+
1470
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
1471
+ cat >11/sub/sub/expected <<EOF &&
1472
+setup: git_dir: $TRASH_DIRECTORY/11.git
1473
+setup: worktree: $TRASH_DIRECTORY/11/wt
1474
+setup: cwd: $TRASH_DIRECTORY/11/sub/sub
1475
+setup: prefix: (null)
1476
+EOF
1477
+ test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../../wt
1478
+'
1479
+
1480
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
1481
+ cat >11/sub/sub/expected <<EOF &&
1482
+setup: git_dir: $TRASH_DIRECTORY/11.git
1483
+setup: worktree: $TRASH_DIRECTORY/11/wt
1484
+setup: cwd: $TRASH_DIRECTORY/11/sub/sub
1485
+setup: prefix: (null)
1486
+EOF
1487
+ test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11/wt"
1488
+'
1489
+
1490
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
1491
+ cat >11/expected <<EOF &&
1492
+setup: git_dir: $TRASH_DIRECTORY/11.git
1493
+setup: worktree: $TRASH_DIRECTORY
1494
+setup: cwd: $TRASH_DIRECTORY
1495
+setup: prefix: 11/
1496
+EOF
1497
+ test_repo 11 .git "$TRASH_DIRECTORY"
1498
+'
1499
+
1500
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
1501
+ cat >11/expected <<EOF &&
1502
+setup: git_dir: $TRASH_DIRECTORY/11.git
1503
+setup: worktree: $TRASH_DIRECTORY
1504
+setup: cwd: $TRASH_DIRECTORY
1505
+setup: prefix: 11/
1506
+EOF
1507
+ test_repo 11 .git ..
1508
+'
1509
+
1510
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
1511
+ cat >11/expected <<EOF &&
1512
+setup: git_dir: $TRASH_DIRECTORY/11.git
1513
+setup: worktree: $TRASH_DIRECTORY
1514
+setup: cwd: $TRASH_DIRECTORY
1515
+setup: prefix: 11/
1516
+EOF
1517
+ test_repo 11 "$TRASH_DIRECTORY/11/.git" ..
1518
+'
1519
+
1520
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=.. at root' '
1521
+ cat >11/expected <<EOF &&
1522
+setup: git_dir: $TRASH_DIRECTORY/11.git
1523
+setup: worktree: $TRASH_DIRECTORY
1524
+setup: cwd: $TRASH_DIRECTORY
1525
+setup: prefix: 11/
1526
+EOF
1527
+ test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY"
1528
+'
1529
+
1530
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
1531
+ cat >11/sub/sub/expected <<EOF &&
1532
+setup: git_dir: $TRASH_DIRECTORY/11.git
1533
+setup: worktree: $TRASH_DIRECTORY
1534
+setup: cwd: $TRASH_DIRECTORY
1535
+setup: prefix: 11/sub/sub/
1536
+EOF
1537
+ test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY"
1538
+'
1539
+
1540
+test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
1541
+ cat >11/sub/sub/expected <<EOF &&
1542
+setup: git_dir: $TRASH_DIRECTORY/11.git
1543
+setup: worktree: $TRASH_DIRECTORY
1544
+setup: cwd: $TRASH_DIRECTORY
1545
+setup: prefix: 11/sub/sub/
1546
+EOF
1547
+ test_repo 11/sub/sub ../../.git ../../..
1548
+'
1549
+
1550
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
1551
+ cat >11/sub/sub/expected <<EOF &&
1552
+setup: git_dir: $TRASH_DIRECTORY/11.git
1553
+setup: worktree: $TRASH_DIRECTORY
1554
+setup: cwd: $TRASH_DIRECTORY
1555
+setup: prefix: 11/sub/sub/
1556
+EOF
1557
+ test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../../../
1558
+'
1559
+
1560
+test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
1561
+ cat >11/sub/sub/expected <<EOF &&
1562
+setup: git_dir: $TRASH_DIRECTORY/11.git
1563
+setup: worktree: $TRASH_DIRECTORY
1564
+setup: cwd: $TRASH_DIRECTORY
1565
+setup: prefix: 11/sub/sub/
1566
+EOF
1567
+ test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY"
1568
+'
1569
+
1570
test_done