Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 我可以将“.hg”与工作目录分开吗?_Version Control_Mercurial - Fatal编程技术网

Version control 我可以将“.hg”与工作目录分开吗?

Version control 我可以将“.hg”与工作目录分开吗?,version-control,mercurial,Version Control,Mercurial,我想将目录C:\WorkDir置于Mercurial版本控制之下,但将存储库置于C:\WorkDir\.hg之外的其他位置,可能D:\Repositories\WorkDir.hg。这在Mercurial中可能吗?非常清楚: 无法将.hg文件夹移到工作文件所在位置之外 居住在根据定义,“工作副本”是父级 .hg文件夹的目录。因此,如果您想在 C:\inetpub\laravel\app 你一定有 C:\inetpub\laravel\app\.hg 如果要避免使用存储库数据填充包含“真实”工作副

我想将目录
C:\WorkDir
置于Mercurial版本控制之下,但将存储库置于
C:\WorkDir\.hg
之外的其他位置,可能
D:\Repositories\WorkDir.hg
。这在Mercurial中可能吗?

非常清楚:

无法将.hg文件夹移到工作文件所在位置之外 居住在根据定义,“工作副本”是父级 .hg文件夹的目录。因此,如果您想在

C:\inetpub\laravel\app

你一定有

C:\inetpub\laravel\app\.hg


如果要避免使用存储库数据填充包含“真实”工作副本的驱动器,可以使用共享扩展名:

例如,如果您希望版本控制
C:\WorkingDir
,但希望大型存储库数据驻留在
D:\Repositories\WorkDir
,只需执行以下操作:

  • cd-D:\Repositories
  • hg init WorkDir
  • cd-C:\
  • hg共享D:\Repositories\WorkDir WorkingDir

  • C:
    上仍然会有一个
    .hg
    目录,但它仍然非常小(大约1MB),而
    D:
    上的repo将随着时间的推移而增长。

    您尝试过创建一个
    连接点吗

    假设您的回购是
    c:\test\.hg
    ,但您希望将
    .hg
    目录放入
    c:\shadow

     mkdir c:\shadow
     mv c:\test\.hg c:\shadow\.hg
     mklink /j c:\test\.hg c:\shadow\.hg
    

    为什么要这样做?也许我的
    C:
    驱动器没有足够的空间。可能
    D:
    驱动器已安排定期备份。谢谢。我也可以试着用这个。然而,我有点害怕“一般警告”部分,因为我不确定这些警告在将来是否适用于我。好吧,这些警告只是合乎逻辑的:您的共享工作目录将立即影响“真实”存储库。因此,如果将“真实”存储库与工作副本一起使用,则在共享工作目录中重写任何历史记录都可能使存储库的工作目录无效。如果您只是像上面的例子中所描述的那样使用它,您将很好。我几乎每天都在使用共享存储库,我从未因此而丢失过任何东西。请记住,它不是克隆,而是共享!