##// END OF EJS Templates
hgweb: support constructing URLs from an alternate base URL...
hgweb: support constructing URLs from an alternate base URL The web.baseurl config option allows server operators to define a custom URL for hosted content. The way it works today is that hgwebdir parses this config option into URL components then updates the appropriate WSGI environment variables so the request "lies" about its details. For example, SERVER_NAME is updated to reflect the alternate base URL's hostname. The WSGI environment should not be modified because WSGI applications may want to know the original request details (for debugging, etc). This commit teaches our request parser about the existence of an alternate base URL. If defined, the advertised URL and other self-reflected paths will take the alternate base URL into account. The hgweb WSGI application didn't use web.baseurl. But hgwebdir did. We update hgwebdir to alter the environment parsing accordingly. The old code around environment manipulation has been removed. With this change, parserequestfromenv() has grown to a bit unwieldy. Now that practically everyone is using it, it is obvious that there is some unused features that can be trimmed. So look for this in follow-up commits. Differential Revision: https://phab.mercurial-scm.org/D2822

File last commit:

r35722:41ef02ba default
r36916:219b2335 default
Show More
test-pathconflicts-basic.t
106 lines | 2.5 KiB | text/troff | Tads3Lexer
/ tests / test-pathconflicts-basic.t
Siddharth Agarwal
merge: disable path conflict checking by default (issue5716)...
r34943 Path conflict checking is currently disabled by default because of issue5716.
Turn it on for this test.
$ cat >> $HGRCPATH << EOF
> [experimental]
> merge.checkpathconflicts=True
> EOF
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545 $ hg init repo
$ cd repo
$ echo base > base
$ hg add base
$ hg commit -m "base"
$ hg bookmark -i base
$ echo 1 > a
$ hg add a
$ hg commit -m "file"
$ hg bookmark -i file
$ echo 2 > a
$ hg commit -m "file2"
$ hg bookmark -i file2
$ hg up -q 0
$ mkdir a
$ echo 2 > a/b
$ hg add a/b
$ hg commit -m "dir"
created new head
$ hg bookmark -i dir
Basic merge - local file conflicts with remote directory
$ hg up -q file
$ hg bookmark -i
$ hg merge --verbose dir
resolving manifests
Mark Thomas
merge: check for path conflicts when merging (issue5628)...
r34556 a: path conflict - a file or link has the same name as a directory
the local file has been renamed to a~853701544ac3
resolve manually then use 'hg resolve --mark a'
moving a to a~853701544ac3
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545 getting a/b
Mark Thomas
merge: check for path conflicts when merging (issue5628)...
r34556 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
Pulkit Goyal
merge: add `--abort` flag which can abort the merge...
r35722 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
Mark Thomas
merge: check for path conflicts when merging (issue5628)...
r34556 [1]
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545 $ hg update --clean .
Mark Thomas
merge: check for path conflicts when merging (issue5628)...
r34556 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
Mark Thomas
context: also consider path conflicts when clearing unknown files...
r34557 $ rm a~853701544ac3
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545
Basic update - local directory conflicts with remote file
$ hg up -q 0
$ mkdir a
$ echo 3 > a/b
$ hg up file
Mark Thomas
merge: improve error messages for path conflicts during update...
r34554 a: untracked directory conflicts with file
Mark Thomas
merge: check for path conflicts when updating (issue5628)...
r34553 abort: untracked files in working directory differ from files in requested revision
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545 [255]
$ hg up --clean file
Mark Thomas
context: also consider path conflicts when clearing unknown files...
r34557 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark file)
Repo state is ok
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545
Mark Thomas
context: also consider path conflicts when clearing unknown files...
r34557 $ hg sum
parent: 1:853701544ac3
file
branch: default
bookmarks: *file
commit: (clean)
update: 2 new changesets (update)
phases: 4 draft
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545
Basic update - untracked file conflicts with remote directory
$ hg up -q 0
$ echo untracked > a
$ hg up --config merge.checkunknown=warn dir
Mark Thomas
merge: check for path conflicts when updating (issue5628)...
r34553 a: replacing untracked file
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark dir)
Mark Thomas
context: also consider path conflicts when clearing unknown files...
r34557 $ cat a.orig
untracked
$ rm -f a.orig
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545
Basic clean update - local directory conflicts with changed remote file
$ hg up -q file
$ rm a
$ mkdir a
$ echo 4 > a/b
$ hg up file2
abort: *: '$TESTTMP/repo/a' (glob)
[255]
$ hg up --clean file2
Mark Thomas
context: also consider path conflicts when clearing unknown files...
r34557 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(activating bookmark file2)
Repo state is ok
Mark Thomas
tests: add a test demonstrating basic path conflict failures...
r34545
Mark Thomas
context: also consider path conflicts when clearing unknown files...
r34557 $ hg sum
parent: 2:f64e09fac717
file2
branch: default
bookmarks: *file2
commit: (clean)
update: 1 new changesets, 2 branch heads (merge)
phases: 4 draft