changeset 12584:fb24b491e06a

init: expand destination url as a configured paths Most commands expands configured paths when repositories are specified, just as the urls help says. Clone also expands the destination path. Clone is morally equivalent to init + push/pull, so init should also expand the destination path - and that is what this patch makes it do. There is no really good usecases for this and in most cases it doesn't matter, but consistency is nice, and otherwise we would have to document the exception.
author Mads Kiilerich <mads@kiilerich.com>
date Wed, 29 Sep 2010 01:32:51 +0200
parents 903828be7397
children 385fd0eee005
files mercurial/commands.py tests/test-init.t
diffstat 2 files changed, 32 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Wed Sep 29 01:32:50 2010 +0200
+++ b/mercurial/commands.py	Wed Sep 29 01:32:51 2010 +0200
@@ -2378,7 +2378,7 @@
 
     Returns 0 on success.
     """
-    hg.repository(hg.remoteui(ui, opts), dest, create=1)
+    hg.repository(hg.remoteui(ui, opts), ui.expandpath(dest), create=1)
 
 def locate(ui, repo, *pats, **opts):
     """locate files matching specific patterns
--- a/tests/test-init.t	Wed Sep 29 01:32:50 2010 +0200
+++ b/tests/test-init.t	Wed Sep 29 01:32:51 2010 +0200
@@ -24,13 +24,13 @@
   $ checknewrepo()
   > {
   >    name=$1
-  >    if [ -d $name/.hg/store ]; then
+  >    if [ -d "$name"/.hg/store ]; then
   >    echo store created
   >    fi
-  >    if [ -f $name/.hg/00changelog.i ]; then
+  >    if [ -f "$name"/.hg/00changelog.i ]; then
   >    echo 00changelog.i created
   >    fi
-  >    cat $name/.hg/requires
+  >    cat "$name"/.hg/requires
   > }
 
 creating 'local'
@@ -157,3 +157,31 @@
   revlogv1
   store
   fncache
+
+prepare test of init of url configured from paths
+
+  $ echo '[paths]' >> $HGRCPATH
+  $ echo "somewhere = `pwd`/url from paths" >> $HGRCPATH
+  $ echo "elsewhere = `pwd`/another paths url" >> $HGRCPATH
+
+init should (for consistency with clone) expand the url
+
+  $ hg init somewhere
+  $ checknewrepo "url from paths"
+  store created
+  00changelog.i created
+  revlogv1
+  store
+  fncache
+
+verify that clone also expand urls
+
+  $ hg clone somewhere elsewhere
+  updating to branch default
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ checknewrepo "another paths url"
+  store created
+  00changelog.i created
+  revlogv1
+  store
+  fncache