Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
mercurial-devel
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
mercurial
mercurial-devel
Commits
6bd9778ae749
Commit
6bd9778ae749
authored
14 years ago
by
Matt Mackall
Browse files
Options
Downloads
Patches
Plain Diff
pushkey: force HTTP POST on push and add tests (issue2489)
parent
70b043405400
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
mercurial/httprepo.py
+2
-0
2 additions, 0 deletions
mercurial/httprepo.py
tests/test-bookmarks-pushpull.t
+114
-1
114 additions, 1 deletion
tests/test-bookmarks-pushpull.t
tests/test-ssh.t
+66
-8
66 additions, 8 deletions
tests/test-ssh.t
with
182 additions
and
9 deletions
mercurial/httprepo.py
+
2
−
0
View file @
6bd9778a
...
...
@@ -68,6 +68,8 @@
raise
util
.
Abort
(
_
(
'
operation not supported over http
'
))
def
_callstream
(
self
,
cmd
,
**
args
):
if
cmd
is
'
pushkey
'
:
args
[
'
data
'
]
=
''
data
=
args
.
pop
(
'
data
'
,
None
)
headers
=
args
.
pop
(
'
headers
'
,
{})
self
.
ui
.
debug
(
"
sending %s command
\n
"
%
cmd
)
...
...
This diff is collapsed.
Click to expand it.
tests/test-bookmarks-pushpull.t
+
114
−
1
View file @
6bd9778a
...
...
@@ -22,6 +22,9 @@
$
hg
init
../
b
$
cd
../
b
$
hg
book
Y
$
hg
book
*
Y
-
1
:
000000000000
$
hg
pull
../
a
pulling
from
../
a
requesting
all
changes
...
...
@@ -31,10 +34,17 @@
added
1
changesets
with
1
changes
to
1
files
(
run
'
hg update
'
to
get
a
working
copy
)
$
hg
bookmarks
no
bookmarks
set
Y
0
:
4e3505
fd9583
$
hg
debugpushkey
../
a
namespaces
bookmarks
namespaces
$
hg
debugpushkey
../
a
bookmarks
Y
4e3505
fd95835d721066b76e75dbb8cc554d7f77
X
4e3505
fd95835d721066b76e75dbb8cc554d7f77
Z
4e3505
fd95835d721066b76e75dbb8cc554d7f77
$
hg
pull
-
B
X
../
a
pulling
from
../
a
searching
for
changes
no
changes
found
importing
bookmark
X
$
hg
bookmark
...
...
@@ -35,9 +45,10 @@
$
hg
pull
-
B
X
../
a
pulling
from
../
a
searching
for
changes
no
changes
found
importing
bookmark
X
$
hg
bookmark
Y
0
:
4e3505
fd9583
X
0
:
4e3505
fd9583
export
bookmark
by
name
...
...
@@ -56,6 +67,12 @@
*
Z
0
:
4e3505
fd9583
W
-
1
:
000000000000
delete
a
remote
bookmark
$
hg
book
-
d
W
$
hg
push
-
B
W
../
a
deleting
remote
bookmark
W
push
/
pull
name
that
doesn
'
t exist
$ hg push -B badname ../a
...
...
@@ -64,3 +81,99 @@
$ hg pull -B anotherbadname ../a
abort: remote bookmark anotherbadname not found!
[255]
divergent bookmarks
$ cd ../a
$ echo c1 > f1
$ hg ci -Am1
adding f1
$ hg book -f X
$ hg book
Y 0:4e3505fd9583
* X 1:0d2164f0ce0d
Z 1:0d2164f0ce0d
$ cd ../b
$ hg up
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo c2 > f2
$ hg ci -Am2
adding f2
$ hg book -f X
$ hg book
Y 0:4e3505fd9583
* X 1:9b140be10808
foo -1:000000000000
foobar -1:000000000000
$ hg pull ../a
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
not updating divergent bookmark X
(run
'
hg
heads
'
to see heads,
'
hg
merge
'
to merge)
$ hg book
Y 0:4e3505fd9583
* X 1:9b140be10808
foo -1:000000000000
foobar -1:000000000000
$ hg push -f ../a
pushing to ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
$ hg -R ../a book
Y 0:4e3505fd9583
* X 1:0d2164f0ce0d
Z 1:0d2164f0ce0d
hgweb
$ cat <<EOF > .hg/hgrc
> [web]
> push_ssl = false
> allow_push = *
> EOF
$ hg serve -p $HGPORT -d --pid-file=../hg.pid -E errors.log
$ cat ../hg.pid >> $DAEMON_PIDS
$ cd ../a
$ hg debugpushkey http://localhost:$HGPORT/ namespaces
bookmarks
namespaces
$ hg debugpushkey http://localhost:$HGPORT/ bookmarks
Y 4e3505fd95835d721066b76e75dbb8cc554d7f77
X 9b140be1080824d768c5a4691a564088eede71f9
foo 0000000000000000000000000000000000000000
foobar 0000000000000000000000000000000000000000
$ hg out -B http://localhost:$HGPORT/
comparing with http://localhost:$HGPORT/
searching for changed bookmarks
Z 0d2164f0ce0d
$ hg push -B Z http://localhost:$HGPORT/
pushing to http://localhost:$HGPORT/
searching for changes
no changes found
exporting bookmark Z
$ hg book -d Z
$ hg in -B http://localhost:$HGPORT/
comparing with http://localhost:$HGPORT/
searching for changed bookmarks
Z 0d2164f0ce0d
foo 000000000000
foobar 000000000000
$ hg pull -B Z http://localhost:$HGPORT/
pulling from http://localhost:$HGPORT/
searching for changes
no changes found
not updating divergent bookmark X
importing bookmark Z
$ kill `cat ../hg.pid`
This diff is collapsed.
Click to expand it.
tests/test-ssh.t
+
66
−
8
View file @
6bd9778a
...
...
@@ -37,10 +37,16 @@
$ echo this > foo
$ echo this > fooO
$ hg ci -A -m "init" foo fooO
$ echo
'[
server
]'
> .hg/hgrc
$ echo
'
uncompressed
=
True
'
>> .hg/hgrc
$ echo
'[
hooks
]'
>> .hg/hgrc
$ echo
'
changegroup
=
python
..
/printenv.py changegroup-in-remote 0 ../dumm
ylog
'
>> .hg/hgrc
$ echo <<EOF > .hg/hgrc
> [server]
> uncompressed = True
>
> [extensions]
> bookmarks =
>
> [hooks]
> changegroup = python ../printenv.py changegroup-in-remote 0 ../dummylog
> EOF
$ cd ..
repo not found error
...
...
@@ -116,6 +122,8 @@
$ echo "default-push = ssh://user@dummy/remote" >> .hg/hgrc
$ echo "[ui]" >> .hg/hgrc
$ echo "ssh = python ../dummyssh" >> .hg/hgrc
$ echo
'[
extensions
]'
>> .hg/hgrc
$ echo
'
bookmarks
=
'
>> .hg/hgrc
find outgoing
...
...
@@ -185,5 +193,47 @@
$ hg ci -A -m z z
created new head
test pushkeys and bookmarks
$ cd ../local
$ echo
'[
extensions
]'
>> ../remote/.hg/hgrc
$ echo
'
bookmarks
=
'
>> ../remote/.hg/hgrc
$ hg debugpushkey --config ui.ssh="python ../dummyssh" ssh://user@dummy/remote namespaces
bookmarks
namespaces
$ hg book foo -r 0
$ hg out -B
comparing with ssh://user@dummy/remote
searching for changed bookmarks
foo 1160648e36ce
$ hg push -B foo
pushing to ssh://user@dummy/remote
searching for changes
no changes found
exporting bookmark foo
$ hg debugpushkey --config ui.ssh="python ../dummyssh" ssh://user@dummy/remote bookmarks
foo 1160648e36cec0054048a7edc4110c6f84fde594
$ hg book -f foo
$ hg push
pushing to ssh://user@dummy/remote
searching for changes
no changes found
updating bookmark foo
$ hg book -d foo
$ hg in -B
comparing with ssh://user@dummy/remote
searching for changed bookmarks
foo a28a9d1a809c
$ hg book -f -r 0 foo
$ hg pull -B foo
pulling from ssh://user@dummy/remote
searching for changes
no changes found
updating bookmark foo
importing bookmark foo
$ hg book -d foo
$ hg push -B foo
deleting remote bookmark foo
a bad, evil hook that prints to stdout
...
...
@@ -188,7 +238,7 @@
a bad, evil hook that prints to stdout
$ echo
'
changegroup
.
stdout
=
python
..
/badhook' >>
.hg/
hgrc
$
cd
../
local
$ echo
'
[
hooks
]'
>> ../remote/
.hg/hgrc
$
echo
'
changegroup
.
stdout
=
python
..
/badhook' >> ../
remote
/.hg/
hgrc
$
echo
r
>
r
$
hg
ci
-
A
-
m z r
...
...
@@ -228,5 +278,9 @@
Got
arguments
1
:
user@dummy
2
:
hg
-
R
local
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
$TESTTMP
/
local
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
changegroup
-
in
-
remote
hook:
HG_NODE
=
a28a9d1a809cab7d4e2fde4bee738a9ede948b60
HG_SOURCE
=
serve
HG_URL
=
remote:ssh:127
.0.0.1
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
...
...
@@ -232,2 +286,6 @@
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
changegroup
-
in
-
remote
hook:
HG_NODE
=
1383141674
ec756a6056f6a9097618482fe0f4a6
HG_SOURCE
=
serve
HG_URL
=
remote:ssh:127
.0.0.1
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
Got
arguments
1
:
user@dummy
2
:
hg
-
R
remote
serve
--
stdio
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment