t1510: setup case #31
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
e0d769d1fda4f66a1c0b99f3f52a25d4f4006162
1 file changed
+269
t/t1510-repo-setup.sh
+269
@@ -4260,4 +4260,273 @@ test_expect_failure '#30: at root' '
4260
)
4261
'
4262
4263
+#
4264
+# case #31
4265
+#
4266
+############################################################
4267
+#
4268
+# Input:
4269
+#
4270
+# - GIT_WORK_TREE is set
4271
+# - GIT_DIR is set
4272
+# - core.worktree is set
4273
+# - .git is a file
4274
+# - core.bare is set
4275
+#
4276
+# Output:
4277
+#
4278
+# #23 except git_dir is set according to .git file
4279
+
4280
+test_expect_success '#31: setup' '
4281
+ unset GIT_DIR GIT_WORK_TREE &&
4282
+ mkdir 31 31/sub 31/sub/sub 31.wt 31.wt/sub 31/wt 31/wt/sub &&
4283
+ cd 31 &&
4284
+ git init &&
4285
+ git config core.bare true &&
4286
+ git config core.worktree non-existent &&
4287
+ mv .git ../31.git &&
4288
+ echo gitdir: ../31.git >.git &&
4289
+ cd ..
4290
+'
4291
+
4292
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
4293
+ cat >31/expected <<EOF &&
4294
+setup: git_dir: $TRASH_DIRECTORY/31.git
4295
+setup: worktree: $TRASH_DIRECTORY/31
4296
+setup: cwd: $TRASH_DIRECTORY/31
4297
+setup: prefix: (null)
4298
+EOF
4299
+ test_repo 31 .git "$TRASH_DIRECTORY/31"
4300
+'
4301
+
4302
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
4303
+ cat >31/expected <<EOF &&
4304
+setup: git_dir: $TRASH_DIRECTORY/31.git
4305
+setup: worktree: $TRASH_DIRECTORY/31
4306
+setup: cwd: $TRASH_DIRECTORY/31
4307
+setup: prefix: (null)
4308
+EOF
4309
+ test_repo 31 .git .
4310
+'
4311
+
4312
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=root at root' '
4313
+ cat >31/expected <<EOF &&
4314
+setup: git_dir: $TRASH_DIRECTORY/31.git
4315
+setup: worktree: $TRASH_DIRECTORY/31
4316
+setup: cwd: $TRASH_DIRECTORY/31
4317
+setup: prefix: (null)
4318
+EOF
4319
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
4320
+'
4321
+
4322
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
4323
+ cat >31/expected <<EOF &&
4324
+setup: git_dir: $TRASH_DIRECTORY/31.git
4325
+setup: worktree: $TRASH_DIRECTORY/31
4326
+setup: cwd: $TRASH_DIRECTORY/31
4327
+setup: prefix: (null)
4328
+EOF
4329
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" .
4330
+'
4331
+
4332
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
4333
+ cat >31/sub/sub/expected <<EOF &&
4334
+setup: git_dir: $TRASH_DIRECTORY/31.git
4335
+setup: worktree: $TRASH_DIRECTORY/31
4336
+setup: cwd: $TRASH_DIRECTORY/31
4337
+setup: prefix: sub/sub/
4338
+EOF
4339
+ test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31"
4340
+'
4341
+
4342
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
4343
+ cat >31/sub/sub/expected <<EOF &&
4344
+setup: git_dir: $TRASH_DIRECTORY/31.git
4345
+setup: worktree: $TRASH_DIRECTORY/31
4346
+setup: cwd: $TRASH_DIRECTORY/31
4347
+setup: prefix: sub/sub/
4348
+EOF
4349
+ test_repo 31/sub/sub ../../.git ../..
4350
+'
4351
+
4352
+test_expect_failure '#31: GIT_DIR, GIT_WORKTREE=root in subdir' '
4353
+ cat >31/sub/expected <<EOF &&
4354
+setup: git_dir: $TRASH_DIRECTORY/31.git
4355
+setup: worktree: $TRASH_DIRECTORY/31
4356
+setup: cwd: $TRASH_DIRECTORY/31
4357
+setup: prefix: sub/
4358
+EOF
4359
+ test_repo 31/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
4360
+'
4361
+
4362
+test_expect_failure '#31: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
4363
+ cat >31/sub/sub/expected <<EOF &&
4364
+setup: git_dir: $TRASH_DIRECTORY/31.git
4365
+setup: worktree: $TRASH_DIRECTORY/31
4366
+setup: cwd: $TRASH_DIRECTORY/31
4367
+setup: prefix: sub/sub/
4368
+EOF
4369
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../..
4370
+'
4371
+
4372
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
4373
+ cat >31/expected <<EOF &&
4374
+setup: git_dir: $TRASH_DIRECTORY/31.git
4375
+setup: worktree: $TRASH_DIRECTORY/31/wt
4376
+setup: cwd: $TRASH_DIRECTORY/31
4377
+setup: prefix: (null)
4378
+EOF
4379
+ test_repo 31 .git "$TRASH_DIRECTORY/31/wt"
4380
+'
4381
+
4382
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
4383
+ cat >31/expected <<EOF &&
4384
+setup: git_dir: $TRASH_DIRECTORY/31.git
4385
+setup: worktree: $TRASH_DIRECTORY/31/wt
4386
+setup: cwd: $TRASH_DIRECTORY/31
4387
+setup: prefix: (null)
4388
+EOF
4389
+ test_repo 31 .git wt
4390
+'
4391
+
4392
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
4393
+ cat >31/expected <<EOF &&
4394
+setup: git_dir: $TRASH_DIRECTORY/31.git
4395
+setup: worktree: $TRASH_DIRECTORY/31/wt
4396
+setup: cwd: $TRASH_DIRECTORY/31
4397
+setup: prefix: (null)
4398
+EOF
4399
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" wt
4400
+'
4401
+
4402
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt at root' '
4403
+ cat >31/expected <<EOF &&
4404
+setup: git_dir: $TRASH_DIRECTORY/31.git
4405
+setup: worktree: $TRASH_DIRECTORY/31/wt
4406
+setup: cwd: $TRASH_DIRECTORY/31
4407
+setup: prefix: (null)
4408
+EOF
4409
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
4410
+'
4411
+
4412
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
4413
+ cat >31/sub/sub/expected <<EOF &&
4414
+setup: git_dir: $TRASH_DIRECTORY/31.git
4415
+setup: worktree: $TRASH_DIRECTORY/31/wt
4416
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4417
+setup: prefix: (null)
4418
+EOF
4419
+ test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31/wt"
4420
+'
4421
+
4422
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
4423
+ cat >31/sub/sub/expected <<EOF &&
4424
+setup: git_dir: $TRASH_DIRECTORY/31.git
4425
+setup: worktree: $TRASH_DIRECTORY/31/wt
4426
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4427
+setup: prefix: (null)
4428
+EOF
4429
+ test_repo 31/sub/sub ../../.git ../../wt
4430
+'
4431
+
4432
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
4433
+ cat >31/sub/sub/expected <<EOF &&
4434
+setup: git_dir: $TRASH_DIRECTORY/31.git
4435
+setup: worktree: $TRASH_DIRECTORY/31/wt
4436
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4437
+setup: prefix: (null)
4438
+EOF
4439
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../wt
4440
+'
4441
+
4442
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
4443
+ cat >31/sub/sub/expected <<EOF &&
4444
+setup: git_dir: $TRASH_DIRECTORY/31.git
4445
+setup: worktree: $TRASH_DIRECTORY/31/wt
4446
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
4447
+setup: prefix: (null)
4448
+EOF
4449
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
4450
+'
4451
+
4452
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
4453
+ cat >31/expected <<EOF &&
4454
+setup: git_dir: $TRASH_DIRECTORY/31.git
4455
+setup: worktree: $TRASH_DIRECTORY
4456
+setup: cwd: $TRASH_DIRECTORY
4457
+setup: prefix: 31/
4458
+EOF
4459
+ test_repo 31 .git "$TRASH_DIRECTORY"
4460
+'
4461
+
4462
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
4463
+ cat >31/expected <<EOF &&
4464
+setup: git_dir: $TRASH_DIRECTORY/31.git
4465
+setup: worktree: $TRASH_DIRECTORY
4466
+setup: cwd: $TRASH_DIRECTORY
4467
+setup: prefix: 31/
4468
+EOF
4469
+ test_repo 31 .git ..
4470
+'
4471
+
4472
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
4473
+ cat >31/expected <<EOF &&
4474
+setup: git_dir: $TRASH_DIRECTORY/31.git
4475
+setup: worktree: $TRASH_DIRECTORY
4476
+setup: cwd: $TRASH_DIRECTORY
4477
+setup: prefix: 31/
4478
+EOF
4479
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" ..
4480
+'
4481
+
4482
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=.. at root' '
4483
+ cat >31/expected <<EOF &&
4484
+setup: git_dir: $TRASH_DIRECTORY/31.git
4485
+setup: worktree: $TRASH_DIRECTORY
4486
+setup: cwd: $TRASH_DIRECTORY
4487
+setup: prefix: 31/
4488
+EOF
4489
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY"
4490
+'
4491
+
4492
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
4493
+ cat >31/sub/sub/expected <<EOF &&
4494
+setup: git_dir: $TRASH_DIRECTORY/31.git
4495
+setup: worktree: $TRASH_DIRECTORY
4496
+setup: cwd: $TRASH_DIRECTORY
4497
+setup: prefix: 31/sub/sub/
4498
+EOF
4499
+ test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY"
4500
+'
4501
+
4502
+test_expect_failure '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
4503
+ cat >31/sub/sub/expected <<EOF &&
4504
+setup: git_dir: $TRASH_DIRECTORY/31.git
4505
+setup: worktree: $TRASH_DIRECTORY
4506
+setup: cwd: $TRASH_DIRECTORY
4507
+setup: prefix: 31/sub/sub/
4508
+EOF
4509
+ test_repo 31/sub/sub ../../.git ../../..
4510
+'
4511
+
4512
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
4513
+ cat >31/sub/sub/expected <<EOF &&
4514
+setup: git_dir: $TRASH_DIRECTORY/31.git
4515
+setup: worktree: $TRASH_DIRECTORY
4516
+setup: cwd: $TRASH_DIRECTORY
4517
+setup: prefix: 31/sub/sub/
4518
+EOF
4519
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../../
4520
+'
4521
+
4522
+test_expect_failure '#31: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
4523
+ cat >31/sub/sub/expected <<EOF &&
4524
+setup: git_dir: $TRASH_DIRECTORY/31.git
4525
+setup: worktree: $TRASH_DIRECTORY
4526
+setup: cwd: $TRASH_DIRECTORY
4527
+setup: prefix: 31/sub/sub/
4528
+EOF
4529
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY"
4530
+'
4531
+
4532
test_done