In 753bc91 ("Remove the requirement opaquelocktoken uri scheme"), the lock token is guaranteed to be prefixed with the string 'opaquelocktoken:', which propagated down to file path creation operations in the remote repository, namely, in start_put (and consequently start_move). These file operations may not be successful, due to the colon ':' character in the file path (specifically, in Windows). This patch ensures that the lock token sans 'opaquelocktoken:' is used instead in start_put. Note on tests: In the second grep, we check that Apache returns status 20* (ie. the request was successful), but in the first we do not do so, since file creation by PUSH/MOVE is not guaranteed to succeed (see above). Signed-off-by: Tay Ray Chuan <rctay89@xxxxxxxxx> --- http-push.c | 2 +- t/t5540-http-push.sh | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletions(-) diff --git a/http-push.c b/http-push.c index eefd64c..10df94a 100644 --- a/http-push.c +++ b/http-push.c @@ -558,7 +558,7 @@ static void start_put(struct transfer_request *request) append_remote_object_url(&buf, remote->url, hex, 0); strbuf_addstr(&buf, "_"); - strbuf_addstr(&buf, request->lock->token); + strbuf_addstr(&buf, request->lock->token + 16); request->url = strbuf_detach(&buf, NULL); slot = get_active_slot(); diff --git a/t/t5540-http-push.sh b/t/t5540-http-push.sh index c236b5e..544dea8 100755 --- a/t/t5540-http-push.sh +++ b/t/t5540-http-push.sh @@ -94,6 +94,15 @@ test_expect_success 'MKCOL sends directory names with trailing slashes' ' ' +test_expect_success 'PUT and MOVE sends object to URLs without "opaquelocktoken:"' ' + + !(grep -P "\"(?:PUT|MOVE) .+objects/[\da-z]{2}/[\da-z]{38}_opaquelocktoken:[\da-z\-]{36} HTTP/[0-9.]+\"" \ + < "$HTTPD_ROOT_PATH"/access.log) && + grep -P "\"(?:PUT|MOVE) .+objects/[\da-z]{2}/[\da-z]{38}_[\da-z\-]{36} HTTP/[0-9.]+\" 20\d" \ + < "$HTTPD_ROOT_PATH"/access.log + +' + stop_httpd test_done -- 1.6.1.2.278.g9a9e.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html