##// END OF EJS Templates
httprepo: long arguments support (issue2126)...
httprepo: long arguments support (issue2126) Send the command arguments in the HTTP headers. The command is still part of the URL. If the server does not have the 'httpheader' capability, the client will send the command arguments in the URL as it did previously. Web servers typically allow more data to be placed within the headers than in the URL, so this approach will: - Avoid HTTP errors due to using a URL that is too large. - Allow Mercurial to implement a more efficient wire protocol. An alternate approach is to send the arguments as part of the request body. This approach has been rejected because it requires the use of POST requests, so it would break any existing configuration that relies on the request type for authentication or caching. Extensibility: - The header size is provided by the server, which makes it possible to introduce an hgrc setting for it. - The client ignores the capability value after the first comma, which allows more information to be included in the future.

File last commit:

r8063:ee8d9b93 default
r14093:ce99d887 default
Show More
test-convert-p4.out
88 lines | 2.3 KiB | text/plain | TextLexer
% create p4 depot
% start the p4 server
% create a client spec
Client hg-p4-import saved.
% populate the depot
//depot/test-mercurial-import/a#1 - opened for add
//depot/test-mercurial-import/b/c#1 - opened for add
Submitting change 1.
Locking 2 files ...
add //depot/test-mercurial-import/a#1
add //depot/test-mercurial-import/b/c#1
Change 1 submitted.
% change some files
//depot/test-mercurial-import/a#1 - opened for edit
Submitting change 2.
Locking 1 files ...
edit //depot/test-mercurial-import/a#2
Change 2 submitted.
//depot/test-mercurial-import/b/c#1 - opened for edit
Submitting change 3.
Locking 1 files ...
edit //depot/test-mercurial-import/b/c#2
Change 3 submitted.
% convert
initializing destination dst repository
reading p4 views
collecting p4 changelists
1 initial
2 change a
3 change b/c
scanning source...
sorting...
converting...
2 initial
1 change a
0 change b/c
rev=2 desc="change b/c" tags="tip" files="b/c"
rev=1 desc="change a" tags="" files="a"
rev=0 desc="initial" tags="" files="a b/c"
% change some files
//depot/test-mercurial-import/a#2 - opened for edit
//depot/test-mercurial-import/b/c#2 - opened for edit
Submitting change 4.
Locking 2 files ...
edit //depot/test-mercurial-import/a#3
edit //depot/test-mercurial-import/b/c#3
Change 4 submitted.
% convert again
reading p4 views
collecting p4 changelists
1 initial
2 change a
3 change b/c
4 change a b/c
scanning source...
sorting...
converting...
0 change a b/c
rev=3 desc="change a b/c" tags="tip" files="a b/c"
rev=2 desc="change b/c" tags="" files="b/c"
rev=1 desc="change a" tags="" files="a"
rev=0 desc="initial" tags="" files="a b/c"
% interesting names
//depot/test-mercurial-import/d d#1 - opened for add
//depot/test-mercurial-import/ e/ f#1 - opened for add
Submitting change 5.
Locking 2 files ...
add //depot/test-mercurial-import/ e/ f#1
add //depot/test-mercurial-import/d d#1
Change 5 submitted.
% convert again
reading p4 views
collecting p4 changelists
1 initial
2 change a
3 change b/c
4 change a b/c
5 add d e f
scanning source...
sorting...
converting...
0 add d e f
rev=4 desc="add d e f" tags="tip" files=" e/ f d d"
rev=3 desc="change a b/c" tags="" files="a b/c"
rev=2 desc="change b/c" tags="" files="b/c"
rev=1 desc="change a" tags="" files="a"
rev=0 desc="initial" tags="" files="a b/c"
% stop the p4 server