Below is the file 'tests/t_add_intermediate__MTN_path.at' from this revision. You can also download the file.

#  -*- Autoconf -*-

AT_SETUP([files with intermediate _MTN path elements])

MTN_SETUP

AT_CHECK(mkdir -p dir1/_MTN)
AT_CHECK(mkdir -p dir2)
AT_CHECK(mkdir -p dir3)

# Check both implicit recursive add...
AT_DATA(dir1/_MTN/testfile1, [testfile 1
])
AT_DATA(dir2/_MTN, [_MTN file 1
])
AT_CHECK(MTN add dir1, [], [ignore], [ignore])
AT_CHECK(MTN add dir2, [], [ignore], [ignore])
COMMIT(testbranch)

# ...and explicit add.
AT_DATA(dir1/_MTN/testfile2, [testfile 2
])
AT_DATA(dir3/_MTN, [_MTN file 2
])
AT_CHECK(MTN add dir1/_MTN/testfile2, [], [ignore], [ignore])
AT_CHECK(MTN add dir3/_MTN, [], [ignore], [ignore])
COMMIT(testbranch)

AT_CHECK(MTN checkout outdir1, [], [ignore], [ignore])
AT_CHECK(cmp dir1/_MTN/testfile1 outdir1/dir1/_MTN/testfile1)
AT_CHECK(cmp dir1/_MTN/testfile2 outdir1/dir1/_MTN/testfile2)
AT_CHECK(cmp dir2/_MTN outdir1/dir2/_MTN)
AT_CHECK(cmp dir3/_MTN outdir1/dir3/_MTN)

# renames

AT_CHECK(mv dir1/_MTN/testfile1 dir1/_MTN/testfile1x)
AT_CHECK(mv dir2/_MTN dir2/TM)
AT_CHECK(mv dir3 dir3x)

AT_CHECK(MTN rename dir1/_MTN/testfile1 dir1/_MTN/testfile1x, [], [ignore], [ignore])
AT_CHECK(MTN rename dir2/_MTN dir2/TM, [], [ignore], [ignore])
AT_CHECK(MTN rename dir3 dir3x, [], [ignore], [ignore])
COMMIT(testbranch)

AT_CHECK(MTN checkout outdir2, [], [ignore], [ignore])
AT_CHECK(cmp dir1/_MTN/testfile1x outdir2/dir1/_MTN/testfile1x)
AT_CHECK(cmp dir1/_MTN/testfile2 outdir2/dir1/_MTN/testfile2)
AT_CHECK(cmp dir2/TM outdir2/dir2/TM)
AT_CHECK(cmp dir3x/_MTN outdir2/dir3x/_MTN)

# explicit drop

AT_CHECK(MTN drop dir1/_MTN/testfile2, [], [ignore], [ignore])
COMMIT(testbranch)

AT_CHECK(MTN checkout outdir3, [], [ignore], [ignore])
AT_CHECK(cmp dir1/_MTN/testfile1x outdir2/dir1/_MTN/testfile1x)
AT_CHECK(test ! -e outdir3/dir1/_MTN/testfile2)

# recursive drop

AT_CHECK(MTN drop --recursive dir1, [], [ignore], [ignore])
COMMIT(testbranch)

AT_CHECK(MTN checkout outdir4, [], [ignore], [ignore])
AT_CHECK(test ! -e outdir4/dir1/_MTN/testfile1x)
AT_CHECK(test ! -e outdir4/dir1/_MTN/testfile2)
AT_CHECK(test ! -e outdir4/dir1/_MTN)
AT_CHECK(test ! -e outdir4/dir1)

AT_CLEANUP