view tests/test-commit @ 11109:a2bc2f2d77a9

subrepo: normalize path part of URLs so that pulling subrepos from webdir works For a "all projects at root" repo layout eg: /main /sub Where subrepos are used such that a clone of main has this layout: ./main/ ./main/.hgsub ./main/sub/ And the .hgsub content is: sub = ../sub This allows a pull from a hgweb where main and sub are exposed at the root (or same directory level) The current code doesn't normalize the path component of a pull url. this results in trying to pull from http://server.com/hg/main/../sub Current hgweb implementation doesn't reduce the path component so this results in a 404 error though everything is setup logically. This patch adresses this 404 error on the puller side normalizing the URLs used for pulling sub repos. For this example, the URL would be reduced to http://server.com/hg/sub Fix + test
author Edouard Gomez <ed.gomez@free.fr>
date Sat, 01 May 2010 23:05:19 +0200
parents 8766fee6f225
children
line wrap: on
line source

#!/bin/sh

echo % commit date test
hg init test
cd test
echo foo > foo
hg add foo
HGEDITOR=true hg commit -m ""
hg commit -d '0 0' -m commit-1
echo foo >> foo
hg commit -d '1 4444444' -m commit-3
hg commit -d '1	15.1' -m commit-4
hg commit -d 'foo bar' -m commit-5
hg commit -d ' 1 4444' -m commit-6
hg commit -d '111111111111 0' -m commit-7

echo % commit added file that has been deleted
echo bar > bar
hg add bar
rm bar
hg commit -d "1000000 0" -m commit-8
hg commit -d "1000000 0" -m commit-8-2 bar

hg -q revert -a --no-backup

mkdir dir
echo boo > dir/file
hg add
hg -v commit -m commit-9 dir

echo > dir.file
hg add
hg commit -m commit-10 dir dir.file

echo >> dir/file
mkdir bleh
mkdir dir2
cd bleh
hg commit -m commit-11 .
hg commit -m commit-12 ../dir ../dir2
hg -v commit -m commit-13 ../dir
cd ..

hg commit -m commit-14 does-not-exist
ln -s foo baz
hg commit -m commit-15 baz
touch quux
hg commit -m commit-16 quux
echo >> dir/file
hg -v commit -m commit-17 dir/file
# An empty date was interpreted as epoch origin
echo foo >> foo
hg commit -d '' -m commit-no-date
hg tip --template '{date|isodate}\n' | grep '1970'
cd ..

echo % partial subdir commit test
hg init test2
cd test2
mkdir foo
echo foo > foo/foo
mkdir bar
echo bar > bar/bar
hg add
hg ci -d '1000000 0' -m commit-subdir-1 foo
hg ci -d '1000001 0' -m commit-subdir-2 bar
echo % subdir log 1
hg log -v foo
echo % subdir log 2
hg log -v bar
echo % full log
hg log -v
cd ..

echo % dot and subdir commit test
hg init test3
cd test3
mkdir foo
echo foo content > foo/plain-file
hg add foo/plain-file
hg ci -d '1000000 0' -m commit-foo-subdir foo
echo modified foo content > foo/plain-file
hg ci -d '2000000 0' -m commit-foo-dot .
echo % full log
hg log -v
echo % subdir log
cd foo
hg log .
cd ..
cd ..

cd ..
hg init issue1049
cd issue1049
echo a > a
hg ci -Ama
echo a >> a
hg ci -mb
hg up 0
echo b >> a
hg ci -mc
HGMERGE=true hg merge
echo % should fail because we are specifying a file name
hg ci -mmerge a
echo % should fail because we are specifying a pattern
hg ci -mmerge -I a
echo % should succeed
hg ci -mmerge
cd ..


echo % test commit message content
hg init commitmsg
cd commitmsg
echo changed > changed
echo removed > removed
hg ci -qAm init

hg rm removed
echo changed >> changed
echo added > added
hg add added
HGEDITOR=cat hg ci -A
cd ..

exit 0