Blo*_*ard 19 git version-control mercurial bazaar
假设我在源代码管理中有一个带有很多子目录的项目,其中很多是我目前不需要的.
我想创建一个只包含整个树的一些工作副本,它仍然保持更改,提交和推送它们的能力.
这是可能的,如果是这样,我该怎么办?
我还在决定是否选择集市或mercurial,所以关于其中任何一个的答案都会有所帮助.
编辑:实际上,git的解决方案也很有用.
drr*_*lvn 14
据我所知,克隆树的子集是不可能的,但还有其他可能性.
Git:该命令git clone有一个--depth标志:
--depth <depth>创建一个浅层克隆,其历史记录被截断为指定的修订数.浅存储库有许多限制(您不能克隆或获取它,也不能从中推送或插入它),但如果您只对历史悠久的大型项目的近期历史感兴趣并且希望将修补程序作为补丁发送.
集市:标志--lightweight的checkout命令只下载一个工作目录,而不是全部历史和节省带宽和磁盘空间.仍支持所有操作,但需要网络连接才能执行这些操作.
我不知道Merurial是否具有此功能.
Ste*_*osh 10
如果你已经有了一个存储库并且你想要这样做,那将是一个痛苦.
如果您要使用全新的存储库执行此操作,您可能需要查看Mercurial的新子库.
基本上,您为某些目录创建独立存储库:
myproject/
.hg/
source code/
... files here ...
documentation/ (subrepo)
.hg/
... files here ...
graphics/ (subrepo)
.hg/
... files here ...
Run Code Online (Sandbox Code Playgroud)
这将项目的不同部分隔离在不同的存储库中."包含"repo(本例中为myproject)跟踪每次提交时子实例的修订版本.我提到的subrepo wiki页面解释得很好.