Now we don't create a whiteout on the branch in which the object is being
deleted, if there's no chance that an even lower-priority branch could have
the same named file exposed.
cat <<FILES
d $TOP_LOWER_DIR
d $LOWER_DIR0
-d $LOWER_DIR0/d6
d $LOWER_DIR1
-d $LOWER_DIR1/d5
d $LOWER_DIR1/d1
d $LOWER_DIR1/d1/d2
d $LOWER_DIR1/d1/d2/d3
function beforefiles {
cat <<FILES
d $LOWER_DIR0/d1
+d $LOWER_DIR0/d6
+d $LOWER_DIR1/d5
+d $LOWER_DIR2/d7
d $LOWER_DIR0/d1/d2
f $LOWER_DIR0/d1/.wh.x
f $LOWER_DIR0/d1/d2/.wh.d3
cat <<FILES
f $LOWER_DIR0/.wh.d1
-f $LOWER_DIR0/.wh.y
+f $LOWER_DIR1/.wh.d5
FILES
}
-
function afterfiles_ro {
cat <<FILES
+d $LOWER_DIR1/d5
+d $LOWER_DIR2/d7
f $LOWER_DIR0/.wh.d1
-f $LOWER_DIR0/.wh.y
+f $LOWER_DIR0/.wh.d5
+f $LOWER_DIR0/.wh.d7
FILES
}
mkdir $MOUNTPOINT/y
mkdir $MOUNTPOINT/d1/x
mkdir $MOUNTPOINT/d1/d2/d3
+rmdir $MOUNTPOINT/d5
+rmdir $MOUNTPOINT/d6
+rmdir $MOUNTPOINT/d7
rm -fr $MOUNTPOINT/d1
rm -fr $MOUNTPOINT/y
mkdir $MOUNTPOINT/y
mkdir $MOUNTPOINT/d1/x
mkdir $MOUNTPOINT/d1/d2/d3
+rmdir $MOUNTPOINT/d5
+rmdir $MOUNTPOINT/d6
+rmdir $MOUNTPOINT/d7
rm -fr $MOUNTPOINT/d1
rm -fr $MOUNTPOINT/y
f $LOWER_DIR0/.wh.a
f $LOWER_DIR1/a
-f $LOWER_DIR1/.wh.b
-
f $LOWER_DIR0/.wh.c
f $LOWER_DIR1/c
f $LOWER_DIR0/.wh.d
-f $LOWER_DIR1/d1/d2/.wh.e
-
-f $LOWER_DIR1/.wh.g
FILES
}
f $LOWER_DIR1/a
f $LOWER_DIR0/b
-f $LOWER_DIR1/.wh.b
f $LOWER_DIR0/c
f $LOWER_DIR1/c
f $LOWER_DIR0/d
f $LOWER_DIR0/d1/d2/e
-f $LOWER_DIR1/d1/d2/.wh.e
f $LOWER_DIR0/g
-f $LOWER_DIR1/.wh.g
FILES
}