@matheusbsbs / matheus-bagliano / commits / 8718ed6125
Fork 0

t1510: setup case #3

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 8718ed61251ae1fd80a375a9f907edb2635a8a29
1 file changed +267
t/t1510-repo-setup.sh
+267
@@ -219,4 +219,271 @@ EOF
219 test_repo 2/sub ../.git
220 '
221
222 +#
223 +# case #3
224 +#
225 +############################################################
226 +#
227 +# Input:
228 +#
229 +# - GIT_WORK_TREE is set
230 +# - GIT_DIR is set
231 +# - core.worktree is not set
232 +# - .git is a directory
233 +# - core.bare is not set, cwd is outside .git
234 +#
235 +# Output:
236 +#
237 +# - worktree is set to $GIT_WORK_TREE
238 +# - cwd is at worktree root
239 +# - prefix is calculated
240 +# - git_dir is set to $GIT_DIR
241 +# - cwd can be outside worktree
242 +
243 +test_expect_success '#3: setup' '
244 + unset GIT_DIR GIT_WORK_TREE &&
245 + mkdir 3 3/sub 3/sub/sub 3.wt 3.wt/sub 3/wt 3/wt/sub &&
246 + cd 3 && git init && cd ..
247 +'
248 +
249 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
250 + cat >3/expected <<EOF &&
251 +setup: git_dir: .git
252 +setup: worktree: $TRASH_DIRECTORY/3
253 +setup: cwd: $TRASH_DIRECTORY/3
254 +setup: prefix: (null)
255 +EOF
256 + test_repo 3 .git "$TRASH_DIRECTORY/3"
257 +'
258 +
259 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
260 + cat >3/expected <<EOF &&
261 +setup: git_dir: .git
262 +setup: worktree: $TRASH_DIRECTORY/3
263 +setup: cwd: $TRASH_DIRECTORY/3
264 +setup: prefix: (null)
265 +EOF
266 + test_repo 3 .git .
267 +'
268 +
269 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=root at root' '
270 + cat >3/expected <<EOF &&
271 +setup: git_dir: $TRASH_DIRECTORY/3/.git
272 +setup: worktree: $TRASH_DIRECTORY/3
273 +setup: cwd: $TRASH_DIRECTORY/3
274 +setup: prefix: (null)
275 +EOF
276 + test_repo 3 "$TRASH_DIRECTORY/3/.git" "$TRASH_DIRECTORY/3"
277 +'
278 +
279 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
280 + cat >3/expected <<EOF &&
281 +setup: git_dir: $TRASH_DIRECTORY/3/.git
282 +setup: worktree: $TRASH_DIRECTORY/3
283 +setup: cwd: $TRASH_DIRECTORY/3
284 +setup: prefix: (null)
285 +EOF
286 + test_repo 3 "$TRASH_DIRECTORY/3/.git" .
287 +'
288 +
289 +test_expect_success '#3: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
290 + cat >3/sub/sub/expected <<EOF &&
291 +setup: git_dir: $TRASH_DIRECTORY/3/.git
292 +setup: worktree: $TRASH_DIRECTORY/3
293 +setup: cwd: $TRASH_DIRECTORY/3
294 +setup: prefix: sub/sub/
295 +EOF
296 + test_repo 3/sub/sub ../../.git "$TRASH_DIRECTORY/3"
297 +'
298 +
299 +test_expect_success '#3: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
300 + cat >3/sub/sub/expected <<EOF &&
301 +setup: git_dir: $TRASH_DIRECTORY/3/.git
302 +setup: worktree: $TRASH_DIRECTORY/3
303 +setup: cwd: $TRASH_DIRECTORY/3
304 +setup: prefix: sub/sub/
305 +EOF
306 + test_repo 3/sub/sub ../../.git ../..
307 +'
308 +
309 +test_expect_success '#3: GIT_DIR, GIT_WORKTREE=root in subdir' '
310 + cat >3/sub/expected <<EOF &&
311 +setup: git_dir: $TRASH_DIRECTORY/3/.git
312 +setup: worktree: $TRASH_DIRECTORY/3
313 +setup: cwd: $TRASH_DIRECTORY/3
314 +setup: prefix: sub/
315 +EOF
316 + test_repo 3/sub "$TRASH_DIRECTORY/3/.git" "$TRASH_DIRECTORY/3"
317 +'
318 +
319 +test_expect_success '#3: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
320 + cat >3/sub/sub/expected <<EOF &&
321 +setup: git_dir: $TRASH_DIRECTORY/3/.git
322 +setup: worktree: $TRASH_DIRECTORY/3
323 +setup: cwd: $TRASH_DIRECTORY/3
324 +setup: prefix: sub/sub/
325 +EOF
326 + test_repo 3/sub/sub "$TRASH_DIRECTORY/3/.git" ../..
327 +'
328 +
329 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
330 + cat >3/expected <<EOF &&
331 +setup: git_dir: .git
332 +setup: worktree: $TRASH_DIRECTORY/3/wt
333 +setup: cwd: $TRASH_DIRECTORY/3
334 +setup: prefix: (null)
335 +EOF
336 + test_repo 3 .git "$TRASH_DIRECTORY/3/wt"
337 +'
338 +
339 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
340 + cat >3/expected <<EOF &&
341 +setup: git_dir: .git
342 +setup: worktree: $TRASH_DIRECTORY/3/wt
343 +setup: cwd: $TRASH_DIRECTORY/3
344 +setup: prefix: (null)
345 +EOF
346 + test_repo 3 .git wt
347 +'
348 +
349 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
350 + cat >3/expected <<EOF &&
351 +setup: git_dir: $TRASH_DIRECTORY/3/.git
352 +setup: worktree: $TRASH_DIRECTORY/3/wt
353 +setup: cwd: $TRASH_DIRECTORY/3
354 +setup: prefix: (null)
355 +EOF
356 + test_repo 3 "$TRASH_DIRECTORY/3/.git" wt
357 +'
358 +
359 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=wt at root' '
360 + cat >3/expected <<EOF &&
361 +setup: git_dir: $TRASH_DIRECTORY/3/.git
362 +setup: worktree: $TRASH_DIRECTORY/3/wt
363 +setup: cwd: $TRASH_DIRECTORY/3
364 +setup: prefix: (null)
365 +EOF
366 + test_repo 3 "$TRASH_DIRECTORY/3/.git" "$TRASH_DIRECTORY/3/wt"
367 +'
368 +
369 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
370 + cat >3/sub/sub/expected <<EOF &&
371 +setup: git_dir: ../../.git
372 +setup: worktree: $TRASH_DIRECTORY/3/wt
373 +setup: cwd: $TRASH_DIRECTORY/3/sub/sub
374 +setup: prefix: (null)
375 +EOF
376 + test_repo 3/sub/sub ../../.git "$TRASH_DIRECTORY/3/wt"
377 +'
378 +
379 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
380 + cat >3/sub/sub/expected <<EOF &&
381 +setup: git_dir: ../../.git
382 +setup: worktree: $TRASH_DIRECTORY/3/wt
383 +setup: cwd: $TRASH_DIRECTORY/3/sub/sub
384 +setup: prefix: (null)
385 +EOF
386 + test_repo 3/sub/sub ../../.git ../../wt
387 +'
388 +
389 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
390 + cat >3/sub/sub/expected <<EOF &&
391 +setup: git_dir: $TRASH_DIRECTORY/3/.git
392 +setup: worktree: $TRASH_DIRECTORY/3/wt
393 +setup: cwd: $TRASH_DIRECTORY/3/sub/sub
394 +setup: prefix: (null)
395 +EOF
396 + test_repo 3/sub/sub "$TRASH_DIRECTORY/3/.git" ../../wt
397 +'
398 +
399 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
400 + cat >3/sub/sub/expected <<EOF &&
401 +setup: git_dir: $TRASH_DIRECTORY/3/.git
402 +setup: worktree: $TRASH_DIRECTORY/3/wt
403 +setup: cwd: $TRASH_DIRECTORY/3/sub/sub
404 +setup: prefix: (null)
405 +EOF
406 + test_repo 3/sub/sub "$TRASH_DIRECTORY/3/.git" "$TRASH_DIRECTORY/3/wt"
407 +'
408 +
409 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
410 + cat >3/expected <<EOF &&
411 +setup: git_dir: $TRASH_DIRECTORY/3/.git
412 +setup: worktree: $TRASH_DIRECTORY
413 +setup: cwd: $TRASH_DIRECTORY
414 +setup: prefix: 3/
415 +EOF
416 + test_repo 3 .git "$TRASH_DIRECTORY"
417 +'
418 +
419 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
420 + cat >3/expected <<EOF &&
421 +setup: git_dir: $TRASH_DIRECTORY/3/.git
422 +setup: worktree: $TRASH_DIRECTORY
423 +setup: cwd: $TRASH_DIRECTORY
424 +setup: prefix: 3/
425 +EOF
426 + test_repo 3 .git ..
427 +'
428 +
429 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
430 + cat >3/expected <<EOF &&
431 +setup: git_dir: $TRASH_DIRECTORY/3/.git
432 +setup: worktree: $TRASH_DIRECTORY
433 +setup: cwd: $TRASH_DIRECTORY
434 +setup: prefix: 3/
435 +EOF
436 + test_repo 3 "$TRASH_DIRECTORY/3/.git" ..
437 +'
438 +
439 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=.. at root' '
440 + cat >3/expected <<EOF &&
441 +setup: git_dir: $TRASH_DIRECTORY/3/.git
442 +setup: worktree: $TRASH_DIRECTORY
443 +setup: cwd: $TRASH_DIRECTORY
444 +setup: prefix: 3/
445 +EOF
446 + test_repo 3 "$TRASH_DIRECTORY/3/.git" "$TRASH_DIRECTORY"
447 +'
448 +
449 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
450 + cat >3/sub/sub/expected <<EOF &&
451 +setup: git_dir: $TRASH_DIRECTORY/3/.git
452 +setup: worktree: $TRASH_DIRECTORY
453 +setup: cwd: $TRASH_DIRECTORY
454 +setup: prefix: 3/sub/sub/
455 +EOF
456 + test_repo 3/sub/sub ../../.git "$TRASH_DIRECTORY"
457 +'
458 +
459 +test_expect_success '#3: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
460 + cat >3/sub/sub/expected <<EOF &&
461 +setup: git_dir: $TRASH_DIRECTORY/3/.git
462 +setup: worktree: $TRASH_DIRECTORY
463 +setup: cwd: $TRASH_DIRECTORY
464 +setup: prefix: 3/sub/sub/
465 +EOF
466 + test_repo 3/sub/sub ../../.git ../../..
467 +'
468 +
469 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
470 + cat >3/sub/sub/expected <<EOF &&
471 +setup: git_dir: $TRASH_DIRECTORY/3/.git
472 +setup: worktree: $TRASH_DIRECTORY
473 +setup: cwd: $TRASH_DIRECTORY
474 +setup: prefix: 3/sub/sub/
475 +EOF
476 + test_repo 3/sub/sub "$TRASH_DIRECTORY/3/.git" ../../../
477 +'
478 +
479 +test_expect_success '#3: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
480 + cat >3/sub/sub/expected <<EOF &&
481 +setup: git_dir: $TRASH_DIRECTORY/3/.git
482 +setup: worktree: $TRASH_DIRECTORY
483 +setup: cwd: $TRASH_DIRECTORY
484 +setup: prefix: 3/sub/sub/
485 +EOF
486 + test_repo 3/sub/sub "$TRASH_DIRECTORY/3/.git" "$TRASH_DIRECTORY"
487 +'
488 +
489 test_done