[PATCH] Updated patch to add remote destination support with suggestions from

Sean Meiners sean.meiners at linspire.com
Tue Jun 20 17:30:30 CDT 2006


lost a colon :(

diff -r 6d436edb97de mercurial/commands.py
--- a/mercurial/commands.py     Tue Jun 20 11:23:10 2006 -0700
+++ b/mercurial/commands.py     Tue Jun 20 15:25:29 2006 -0700
@@ -893,7 +893,7 @@ def clone(ui, source, dest=None, **opts)

     destPath = None
     d = None
-    if dest_repo.dev() != -1
+    if dest_repo.dev() != -1:
         destPath = os.path.realpath(dest)
         d = Dircleanup(destPath)


On Tuesday 20 June 2006 11:31, Sean Meiners wrote:
> # HG changeset patch
> # User smeiners at slick.sd.linspire.com
> # Node ID 6d436edb97de895b7954ea273224bd2b71aba6be
> # Parent  a6cd9514f2bc94508ec0f13336ef5977de4cc013
> Updated patch to add remote destination support with suggestions from
> Bryan O'Sullivan.
>
> Changed option to update local hgrc to be off by default when the
> destination is remote. I'm hoping this will make it less contentious.
>
> diff -r a6cd9514f2bc -r 6d436edb97de mercurial/commands.py
> --- a/mercurial/commands.py	Mon Jun 19 16:50:52 2006 -0700
> +++ b/mercurial/commands.py	Tue Jun 20 11:23:10 2006 -0700
> @@ -882,31 +882,26 @@ def clone(ui, source, dest=None, **opts)
>          ui.setconfig("ui", "remotecmd", opts['remotecmd'])
>
>      source = ui.expandpath(source)
> -    srcRepo = hg.repository(ui, source)
> -
> -    destRepo = None
> +    src_repo = hg.repository(ui, source)
> +
> +    dest_repo = None
>      try:
> -        destRepo = hg.repository(ui, dest)
> +        dest_repo = hg.repository(ui, dest)
> +        raise util.Abort(_("destination '%s' already exists." % dest))
>      except hg.RepoError:
> -        pass
> -
> -    if destRepo:
> -        error = _("destination '%s' already exists." % dest)
> -        raise util.Abort(error)
> -
> -    destRepo = hg.repository(ui, dest, create=1)
> +        dest_repo = hg.repository(ui, dest, create=1)
>
>      destPath = None
>      d = None
> -    if destRepo.dev() != -1
> +    if dest_repo.dev() != -1
>          destPath = os.path.realpath(dest)
>          d = Dircleanup(destPath)
> -
> +
>      abspath = source
> -    srcRepo = hg.repository(ui, source)
> +    src_repo = hg.repository(ui, source)
>
>      copy = False
> -    if srcRepo.dev() != -1 and destRepo.dev() != -1:
> +    if src_repo.dev() != -1 and dest_repo.dev() != -1:
>          abspath = os.path.abspath(source)
>          if not opts['pull'] and not opts['rev']:
>              copy = True
> @@ -917,7 +912,7 @@ def clone(ui, source, dest=None, **opts)
>              # can end up with extra data in the cloned revlogs that's
>              # not pointed to by changesets, thus causing verify to
>              # fail
> -            l1 = srcRepo.lock()
> +            l1 = src_repo.lock()
>          except lock.LockException:
>              copy = False
>
> @@ -939,52 +934,55 @@ def clone(ui, source, dest=None, **opts)
>      else:
>          revs = None
>          if opts['rev']:
> -            if not srcRepo.local():
> +            if not src_repo.local():
>                  error = _("clone -r not supported yet for remote
> repositories.") raise util.Abort(error)
>              else:
> -                revs = [srcRepo.lookup(rev) for rev in opts['rev']]
> -
> -        if destRepo.dev() != -1:
> -            destRepo.pull(srcRepo, heads = revs)
> -        elif srcRepo.dev() != -1:
> -            srcRepo.push(destRepo, revs = revs)
> +                revs = [src_repo.lookup(rev) for rev in opts['rev']]
> +
> +        if dest_repo.dev() != -1:
> +            dest_repo.pull(src_repo, heads = revs)
> +        elif src_repo.dev() != -1:
> +            src_repo.push(dest_repo, revs = revs)
>          else:
>              error = _("clone from remote to remote not supported.")
>              raise util.Abort(error)
>
> -    if destRepo.dev() != -1:
> -        if not opts['nohgrc']:
> -            f = destRepo.opener("hgrc", "w", text=True)
> -            f.write("[paths]\n")
> -            f.write("default = %s\n" % abspath)
> -            f.close()
> +    if dest_repo.dev() != -1:
> +        f = dest_repo.opener("hgrc", "w", text=True)
> +        f.write("[paths]\n")
> +        f.write("default = %s\n" % abspath)
> +        f.close()
>
>          if not opts['noupdate']:
> -            update(destRepo.ui, destRepo)
> -
> -    elif srcRepo.dev() != -1:
> -        if not opts['nohgrc']:
> +            update(dest_repo.ui, dest_repo)
> +
> +    elif src_repo.dev() != -1:
> +        if opts['update_hgrc']:
>              inPaths = False
> +            defaultFound = False
>              groupRE = re.compile(r'^\s*\[([^\]]+)\].*')
>              defaultRE = re.compile(r'^\s*default\s*=.*')
>              lines = []
> -            f = srcRepo.opener("hgrc", "r", text=True)
> +            f = src_repo.opener("hgrc", "r", text=True)
>              for line in f:
>                  match = groupRE.match(line)
>                  if match:
>                      if match.group(1) == 'paths':
>                          inPaths = True
>                      else:
> +                        if inPaths and not defaultFound:
> +                            lines.append( 'default = %s\n' % dest )
>                          inPaths = False
>                  elif inPaths:
>                      if defaultRE.match(line):
>                          lines.append( 'default = %s\n' % dest )
> +                        defaultFound = True
>                          continue
>                  lines.append(line)
>              f.close()
> -
> -            f = srcRepo.opener("hgrc", "w", text=True)
> +
> +            f = src_repo.opener("hgrc", "w", text=True)
>              for line in lines:
>                  f.write(line)
>              f.close()
> @@ -2879,7 +2877,7 @@ table = {
>             _('a changeset you would like to have after cloning')),
>            ('', 'pull', None, _('use pull protocol to copy metadata')),
>            ('e', 'ssh', '', _('specify ssh command to use')),
> -          ('n', 'nohgrc', None, _('do not update local hgrc file')),
> +          ('u', 'update-hgrc', None, _('update local hgrc file to point to
> the remote repo')), ('', 'remotecmd', '',
>             _('specify hg command to run on the remote side'))],
>           _('hg clone [OPTION]... SOURCE [DEST]')),
> diff -r a6cd9514f2bc -r 6d436edb97de mercurial/sshrepo.py
> --- a/mercurial/sshrepo.py	Mon Jun 19 16:50:52 2006 -0700
> +++ b/mercurial/sshrepo.py	Tue Jun 20 11:23:10 2006 -0700
> @@ -44,10 +44,10 @@ class sshrepository(remoterepository):
>              ui.note('running %s\n' % cmd)
>              res = os.system(cmd)
>              if res != 0:
> -                raise hg.RepoError(_("Could not create remote repo"))
> +                raise hg.RepoError(_("could not create remote repo"))
>
>          self.validate_repo(ui, sshcmd, args, remotecmd)
> -
> +
>      def validate_repo(self, ui, sshcmd, args, remotecmd):
>          cmd = '%s %s "%s -R %s serve --stdio"'
>          cmd = cmd % (sshcmd, args, remotecmd, self.path)
> _______________________________________________
> Mercurial mailing list
> Mercurial at selenic.com
> http://selenic.com/mailman/listinfo/mercurial

-- 
Sean Meiners
sean.meiners at linspireinc.com


Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;


More information about the Mercurial mailing list