[PATCH 3 of 6] hg: update to use vfs functions in shared destination repository

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Thu Jun 19 12:26:37 CDT 2014


At Mon, 16 Jun 2014 22:09:43 +0530,
Chinmay Joshi wrote:
> 
> # HG changeset patch
> # User Chinmay Joshi <c at chinmayjoshi.com>
> # Date 1402932176 -19800
> #      Mon Jun 16 20:52:56 2014 +0530
> # Node ID c74650d0e88db42859b07e03d4f266eaae91b2a8
> # Parent  b230c9509c488d0d2ef0bf9e3375b2ad376153fd
> hg: update to use vfs functions in shared destination repository
> 
> This patch uses rvfs with base as root of .hg directory in shared destination
> repository to update filesystem function with vfs. Some methods are changed to
> use vfs functions with rvfs.
> 
> diff --git a/mercurial/hg.py b/mercurial/hg.py
> --- a/mercurial/hg.py
> +++ b/mercurial/hg.py
> @@ -173,14 +173,14 @@
>      sharedpath = srcrepo.sharedpath # if our source is already sharing
>  
>      dstvfs = scmutil.vfs(dest, expandpath=True, realpath=True)
> -    roothg = os.path.join(root, '.hg')

"roothg" shouldn't be removed in this patch, because it is still
referred from others until next (#4) patch (see writing 'requires' and
'sharedpath' out below in this patch !)


> +    rvfs = scmutil.vfs(os.path.join(dstvfs.base, '.hg'))

Name of "rvfs" seems to make relation with "dstvfs" weak.

What about "dstwvfs" and "dstvfs" to follow field names of
localrepository, instead of "dstvfs" and "rvfs" ?


Or what about passing ".hg" to "dstvfs" explicitly like below, because
there are at most four "rvfs" users below ? (this way may be a little
redundant ...)

> -    if os.path.exists(roothg):
> +    if rvfs.lexists():

       if dstvfs('.hg'):

>          raise util.Abort(_('destination already exists'))
>  
>      if not dstvfs.isdir():
>          dstvfs.mkdir()
> -    util.makedir(roothg, notindexed=True)
> +    rvfs.makedir()

       dstvfs.makedir('.hg')

>      requirements = ''
>      try:
> @@ -193,7 +193,7 @@
>      util.writefile(os.path.join(roothg, 'requires'), requirements)
>      util.writefile(os.path.join(roothg, 'sharedpath'), sharedpath)

(in next patch)

       dstvfs.write('.hg/requires', requirements)
       dstvfs.write('.hg/sharedpath, requirements)

> -    r = repository(ui, root)
> +    r = repository(ui, dstvfs.base)
>  
>      default = srcrepo.ui.config('paths', 'default')
>      if default:
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
> 


----------------------------------------------------------------------
[FUJIWARA Katsunori]                             foozy at lares.dti.ne.jp


More information about the Mercurial-devel mailing list