Merge branch 'pw/p4-view-updates'
* pw/p4-view-updates: git-p4: add tests demonstrating spec overlay ambiguities git-p4: adjust test to adhere to stricter useClientSpec git-p4: clarify comment git-p4: fix verbose comment typo git-p4: only a single ... wildcard is supported
This commit is contained in:
commit
1082fb22b2
@ -314,6 +314,11 @@ around whitespace. Of the possible wildcards, git-p4 only handles
|
|||||||
'...', and only when it is at the end of the path. Git-p4 will complain
|
'...', and only when it is at the end of the path. Git-p4 will complain
|
||||||
if it encounters an unhandled wildcard.
|
if it encounters an unhandled wildcard.
|
||||||
|
|
||||||
|
Bugs in the implementation of overlap mappings exist. If multiple depot
|
||||||
|
paths map through overlays to the same location in the repository,
|
||||||
|
git-p4 can choose the wrong one. This is hard to solve without
|
||||||
|
dedicating a client spec just for git-p4.
|
||||||
|
|
||||||
The name of the client can be given to git-p4 in multiple ways. The
|
The name of the client can be given to git-p4 in multiple ways. The
|
||||||
variable 'git-p4.client' takes precedence if it exists. Otherwise,
|
variable 'git-p4.client' takes precedence if it exists. Otherwise,
|
||||||
normal p4 mechanisms of determining the client are used: environment
|
normal p4 mechanisms of determining the client are used: environment
|
||||||
|
@ -1207,8 +1207,8 @@ class View(object):
|
|||||||
die("Can't handle * wildcards in view: %s" % self.path)
|
die("Can't handle * wildcards in view: %s" % self.path)
|
||||||
triple_dot_index = self.path.find("...")
|
triple_dot_index = self.path.find("...")
|
||||||
if triple_dot_index >= 0:
|
if triple_dot_index >= 0:
|
||||||
if not self.path.endswith("..."):
|
if triple_dot_index != len(self.path) - 3:
|
||||||
die("Can handle ... wildcard only at end of path: %s" %
|
die("Can handle only single ... wildcard, at end: %s" %
|
||||||
self.path)
|
self.path)
|
||||||
self.ends_triple_dot = True
|
self.ends_triple_dot = True
|
||||||
|
|
||||||
@ -1263,7 +1263,7 @@ class View(object):
|
|||||||
if self.exclude:
|
if self.exclude:
|
||||||
c = "-"
|
c = "-"
|
||||||
return "View.Mapping: %s%s -> %s" % \
|
return "View.Mapping: %s%s -> %s" % \
|
||||||
(c, self.depot_side, self.client_side)
|
(c, self.depot_side.path, self.client_side.path)
|
||||||
|
|
||||||
def map_depot_to_client(self, depot_path):
|
def map_depot_to_client(self, depot_path):
|
||||||
"""Calculate the client path if using this mapping on the
|
"""Calculate the client path if using this mapping on the
|
||||||
@ -1363,7 +1363,8 @@ class View(object):
|
|||||||
else:
|
else:
|
||||||
# This mapping matched; no need to search any further.
|
# This mapping matched; no need to search any further.
|
||||||
# But, the mapping could be rejected if the client path
|
# But, the mapping could be rejected if the client path
|
||||||
# has already been claimed by an earlier mapping.
|
# has already been claimed by an earlier mapping (i.e.
|
||||||
|
# one later in the list, which we are walking backwards).
|
||||||
already_mapped_in_client = False
|
already_mapped_in_client = False
|
||||||
for f in paths_filled:
|
for f in paths_filled:
|
||||||
# this is View.Path.match
|
# this is View.Path.match
|
||||||
|
@ -146,7 +146,7 @@ test_expect_success 'clone --use-client-spec' '
|
|||||||
(
|
(
|
||||||
cd "$git" &&
|
cd "$git" &&
|
||||||
test_path_is_file bus/dir/f4 &&
|
test_path_is_file bus/dir/f4 &&
|
||||||
test_path_is_file file1
|
test_path_is_missing file1
|
||||||
) &&
|
) &&
|
||||||
cleanup_git &&
|
cleanup_git &&
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ test_expect_success 'clone --use-client-spec' '
|
|||||||
"$GITP4" sync //depot/... &&
|
"$GITP4" sync //depot/... &&
|
||||||
git checkout -b master p4/master &&
|
git checkout -b master p4/master &&
|
||||||
test_path_is_file bus/dir/f4 &&
|
test_path_is_file bus/dir/f4 &&
|
||||||
test_path_is_file file1
|
test_path_is_missing file1
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -101,12 +101,18 @@ test_expect_success 'unsupported view wildcard *' '
|
|||||||
test_must_fail "$GITP4" clone --use-client-spec --dest="$git" //depot
|
test_must_fail "$GITP4" clone --use-client-spec --dest="$git" //depot
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'wildcard ... only supported at end of spec' '
|
test_expect_success 'wildcard ... only supported at end of spec 1' '
|
||||||
client_view "//depot/.../file11 //client/.../file11" &&
|
client_view "//depot/.../file11 //client/.../file11" &&
|
||||||
test_when_finished cleanup_git &&
|
test_when_finished cleanup_git &&
|
||||||
test_must_fail "$GITP4" clone --use-client-spec --dest="$git" //depot
|
test_must_fail "$GITP4" clone --use-client-spec --dest="$git" //depot
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'wildcard ... only supported at end of spec 2' '
|
||||||
|
client_view "//depot/.../a/... //client/.../a/..." &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
test_must_fail "$GITP4" clone --use-client-spec --dest="$git" //depot
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'basic map' '
|
test_expect_success 'basic map' '
|
||||||
client_view "//depot/dir1/... //client/cli1/..." &&
|
client_view "//depot/dir1/... //client/cli1/..." &&
|
||||||
files="cli1/file11 cli1/file12" &&
|
files="cli1/file11 cli1/file12" &&
|
||||||
@ -240,6 +246,393 @@ test_expect_success 'quotes on rhs only' '
|
|||||||
git_verify "cdir 1/file11" "cdir 1/file12"
|
git_verify "cdir 1/file11" "cdir 1/file12"
|
||||||
'
|
'
|
||||||
|
|
||||||
|
#
|
||||||
|
# What happens when two files of the same name are overlayed together?
|
||||||
|
# The last-listed file should take preference.
|
||||||
|
#
|
||||||
|
# //depot
|
||||||
|
# - dir1
|
||||||
|
# - file11
|
||||||
|
# - file12
|
||||||
|
# - filecollide
|
||||||
|
# - dir2
|
||||||
|
# - file21
|
||||||
|
# - file22
|
||||||
|
# - filecollide
|
||||||
|
#
|
||||||
|
test_expect_success 'overlay collision setup' '
|
||||||
|
client_view "//depot/... //client/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir1/filecollide >dir1/filecollide &&
|
||||||
|
p4 add dir1/filecollide &&
|
||||||
|
p4 submit -d dir1/filecollide &&
|
||||||
|
echo dir2/filecollide >dir2/filecollide &&
|
||||||
|
p4 add dir2/filecollide &&
|
||||||
|
p4 submit -d dir2/filecollide
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay collision 1 to 2' '
|
||||||
|
client_view "//depot/dir1/... //client/..." \
|
||||||
|
"+//depot/dir2/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 filecollide" &&
|
||||||
|
echo dir2/filecollide >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/filecollide &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
"$GITP4" clone --use-client-spec --dest="$git" //depot &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/filecollide
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_failure 'overlay collision 2 to 1' '
|
||||||
|
client_view "//depot/dir2/... //client/..." \
|
||||||
|
"+//depot/dir1/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 filecollide" &&
|
||||||
|
echo dir1/filecollide >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/filecollide &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
"$GITP4" clone --use-client-spec --dest="$git" //depot &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/filecollide
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay collision delete 2' '
|
||||||
|
client_view "//depot/... //client/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
p4 delete dir2/filecollide &&
|
||||||
|
p4 submit -d "remove dir2/filecollide"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
# no filecollide, got deleted with dir2
|
||||||
|
test_expect_failure 'overlay collision 1 to 2, but 2 deleted' '
|
||||||
|
client_view "//depot/dir1/... //client/..." \
|
||||||
|
"+//depot/dir2/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22" &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
"$GITP4" clone --use-client-spec --dest="$git" //depot &&
|
||||||
|
git_verify $files
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay collision update 1' '
|
||||||
|
client_view "//depot/dir1/... //client/dir1/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
p4 open dir1/filecollide &&
|
||||||
|
echo dir1/filecollide update >dir1/filecollide &&
|
||||||
|
p4 submit -d "update dir1/filecollide"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
# still no filecollide, dir2 still wins with the deletion even though the
|
||||||
|
# change to dir1 is more recent
|
||||||
|
test_expect_failure 'overlay collision 1 to 2, but 2 deleted, then 1 updated' '
|
||||||
|
client_view "//depot/dir1/... //client/..." \
|
||||||
|
"+//depot/dir2/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22" &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
"$GITP4" clone --use-client-spec --dest="$git" //depot &&
|
||||||
|
git_verify $files
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay collision delete filecollides' '
|
||||||
|
client_view "//depot/... //client/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
p4 delete dir1/filecollide dir2/filecollide &&
|
||||||
|
p4 submit -d "remove filecollides"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Overlays as part of sync, rather than initial checkout:
|
||||||
|
# 1. add a file in dir1
|
||||||
|
# 2. sync to include it
|
||||||
|
# 3. add same file in dir2
|
||||||
|
# 4. sync, make sure content switches as dir2 has priority
|
||||||
|
# 5. add another file in dir1
|
||||||
|
# 6. sync
|
||||||
|
# 7. add/delete same file in dir2
|
||||||
|
# 8. sync, make sure it disappears, again dir2 wins
|
||||||
|
# 9. cleanup
|
||||||
|
#
|
||||||
|
# //depot
|
||||||
|
# - dir1
|
||||||
|
# - file11
|
||||||
|
# - file12
|
||||||
|
# - colA
|
||||||
|
# - colB
|
||||||
|
# - dir2
|
||||||
|
# - file21
|
||||||
|
# - file22
|
||||||
|
# - colA
|
||||||
|
# - colB
|
||||||
|
#
|
||||||
|
test_expect_success 'overlay sync: add colA in dir1' '
|
||||||
|
client_view "//depot/dir1/... //client/dir1/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir1/colA >dir1/colA &&
|
||||||
|
p4 add dir1/colA &&
|
||||||
|
p4 submit -d dir1/colA
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: initial git checkout' '
|
||||||
|
client_view "//depot/dir1/... //client/..." \
|
||||||
|
"+//depot/dir2/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA" &&
|
||||||
|
echo dir1/colA >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colA &&
|
||||||
|
"$GITP4" clone --use-client-spec --dest="$git" //depot &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/colA
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: add colA in dir2' '
|
||||||
|
client_view "//depot/dir2/... //client/dir2/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir2/colA >dir2/colA &&
|
||||||
|
p4 add dir2/colA &&
|
||||||
|
p4 submit -d dir2/colA
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: colA content switch' '
|
||||||
|
client_view "//depot/dir1/... //client/..." \
|
||||||
|
"+//depot/dir2/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA" &&
|
||||||
|
echo dir2/colA >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colA &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
"$GITP4" sync --use-client-spec &&
|
||||||
|
git merge --ff-only p4/master
|
||||||
|
) &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/colA
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: add colB in dir1' '
|
||||||
|
client_view "//depot/dir1/... //client/dir1/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir1/colB >dir1/colB &&
|
||||||
|
p4 add dir1/colB &&
|
||||||
|
p4 submit -d dir1/colB
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: colB appears' '
|
||||||
|
client_view "//depot/dir1/... //client/..." \
|
||||||
|
"+//depot/dir2/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA colB" &&
|
||||||
|
echo dir1/colB >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colB &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
"$GITP4" sync --use-client-spec &&
|
||||||
|
git merge --ff-only p4/master
|
||||||
|
) &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/colB
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: add/delete colB in dir2' '
|
||||||
|
client_view "//depot/dir2/... //client/dir2/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir2/colB >dir2/colB &&
|
||||||
|
p4 add dir2/colB &&
|
||||||
|
p4 submit -d dir2/colB &&
|
||||||
|
p4 delete dir2/colB &&
|
||||||
|
p4 submit -d "delete dir2/colB"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: colB disappears' '
|
||||||
|
client_view "//depot/dir1/... //client/..." \
|
||||||
|
"+//depot/dir2/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA" &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
"$GITP4" sync --use-client-spec &&
|
||||||
|
git merge --ff-only p4/master
|
||||||
|
) &&
|
||||||
|
git_verify $files
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync: cleanup' '
|
||||||
|
client_view "//depot/... //client/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
p4 delete dir1/colA dir2/colA dir1/colB &&
|
||||||
|
p4 submit -d "remove overlay sync files"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Overlay tests again, but swapped so dir1 has priority.
|
||||||
|
# 1. add a file in dir1
|
||||||
|
# 2. sync to include it
|
||||||
|
# 3. add same file in dir2
|
||||||
|
# 4. sync, make sure content does not switch
|
||||||
|
# 5. add another file in dir1
|
||||||
|
# 6. sync
|
||||||
|
# 7. add/delete same file in dir2
|
||||||
|
# 8. sync, make sure it is still there
|
||||||
|
# 9. cleanup
|
||||||
|
#
|
||||||
|
# //depot
|
||||||
|
# - dir1
|
||||||
|
# - file11
|
||||||
|
# - file12
|
||||||
|
# - colA
|
||||||
|
# - colB
|
||||||
|
# - dir2
|
||||||
|
# - file21
|
||||||
|
# - file22
|
||||||
|
# - colA
|
||||||
|
# - colB
|
||||||
|
#
|
||||||
|
test_expect_success 'overlay sync swap: add colA in dir1' '
|
||||||
|
client_view "//depot/dir1/... //client/dir1/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir1/colA >dir1/colA &&
|
||||||
|
p4 add dir1/colA &&
|
||||||
|
p4 submit -d dir1/colA
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync swap: initial git checkout' '
|
||||||
|
client_view "//depot/dir2/... //client/..." \
|
||||||
|
"+//depot/dir1/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA" &&
|
||||||
|
echo dir1/colA >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colA &&
|
||||||
|
"$GITP4" clone --use-client-spec --dest="$git" //depot &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/colA
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync swap: add colA in dir2' '
|
||||||
|
client_view "//depot/dir2/... //client/dir2/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir2/colA >dir2/colA &&
|
||||||
|
p4 add dir2/colA &&
|
||||||
|
p4 submit -d dir2/colA
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_failure 'overlay sync swap: colA no content switch' '
|
||||||
|
client_view "//depot/dir2/... //client/..." \
|
||||||
|
"+//depot/dir1/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA" &&
|
||||||
|
echo dir1/colA >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colA &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
"$GITP4" sync --use-client-spec &&
|
||||||
|
git merge --ff-only p4/master
|
||||||
|
) &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/colA
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync swap: add colB in dir1' '
|
||||||
|
client_view "//depot/dir1/... //client/dir1/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir1/colB >dir1/colB &&
|
||||||
|
p4 add dir1/colB &&
|
||||||
|
p4 submit -d dir1/colB
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync swap: colB appears' '
|
||||||
|
client_view "//depot/dir2/... //client/..." \
|
||||||
|
"+//depot/dir1/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA colB" &&
|
||||||
|
echo dir1/colB >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colB &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
"$GITP4" sync --use-client-spec &&
|
||||||
|
git merge --ff-only p4/master
|
||||||
|
) &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$git"/colB
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync swap: add/delete colB in dir2' '
|
||||||
|
client_view "//depot/dir2/... //client/dir2/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
echo dir2/colB >dir2/colB &&
|
||||||
|
p4 add dir2/colB &&
|
||||||
|
p4 submit -d dir2/colB &&
|
||||||
|
p4 delete dir2/colB &&
|
||||||
|
p4 submit -d "delete dir2/colB"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_failure 'overlay sync swap: colB no change' '
|
||||||
|
client_view "//depot/dir2/... //client/..." \
|
||||||
|
"+//depot/dir1/... //client/..." &&
|
||||||
|
files="file11 file12 file21 file22 colA colB" &&
|
||||||
|
echo dir1/colB >actual &&
|
||||||
|
client_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colB &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
"$GITP4" sync --use-client-spec &&
|
||||||
|
git merge --ff-only p4/master
|
||||||
|
) &&
|
||||||
|
git_verify $files &&
|
||||||
|
test_cmp actual "$cli"/colB
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'overlay sync swap: cleanup' '
|
||||||
|
client_view "//depot/... //client/..." &&
|
||||||
|
(
|
||||||
|
cd "$cli" &&
|
||||||
|
p4 sync &&
|
||||||
|
p4 delete dir1/colA dir2/colA dir1/colB &&
|
||||||
|
p4 submit -d "remove overlay sync files"
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
#
|
#
|
||||||
# Rename directories to test quoting in depot-side mappings
|
# Rename directories to test quoting in depot-side mappings
|
||||||
# //depot
|
# //depot
|
||||||
|
Loading…
Reference in New Issue
Block a user