标签: dvcs

如何在DVCS中妥善管理大型艺术资产?

有没有什么方法可以使用DVCS工具(如hggit)处理大型资产(即1000个图像,flash电影等).在我看来,克隆充满4 GB资产的存储库似乎是一个不必要的开销,因为你将检查文件.如果您将源代码与资产文件混合在一起,这似乎相当麻烦.

有没有人在Web开发环境中有任何想法或经验?

version-control dvcs asset-management

48
推荐指数
1
解决办法
2万
查看次数

什么使DVCS中的合并变得容易?

我在Joel的软件上读到:

使用分布式版本控制,分布式部分实际上不是最有趣的部分.

有趣的是,这些系统考虑的是变化,而不是版本.

HgInit:

当我们必须合并时,Subversion会尝试查看两个版本 - 我的修改后的代码和修改过的代码 - 它会尝试猜测如何在一个大的邪恶混乱中将它们粉碎在一起.它通常会失败,产生并非真正冲突的"合并冲突"的页面和页面,只是Subversion无法弄清楚我们做了什么的地方.

相比之下,当我们在Mercurial中单独工作时,Mercurial正忙着保留一系列变更集.因此,当我们想要将我们的代码合并在一起时,Mercurial实际上有更多的信息:它知道我们每个人都改变了什么并且可以重新应用这些更改,而不仅仅是查看最终产品并试图猜测如何放置它一起.

通过查看SVN的存储库文件夹,我的印象是Subversion将每个修订版维护为变更集.据我所知,Hg正在使用变更集快照,而Git纯粹使用快照来存储数据.

如果我的假设是正确的,那么必须有其他方法使DVCS中的合并变得容易.那些是什么?

*更新:

  • 我对技术角度更感兴趣,但从非技术角度来看是可以接受的
  • 更正:
    1. Git的概念模型纯粹基于快照.快照可以存储为其他快照的差异,只是差异纯粹用于存储优化.- 拉法洛·道格尔德评论
  • 从非技术角度来看:
    1. 它只是文化:如果合并困难,DVCS根本不会工作,因此DVCS开发人员投入大量时间和精力使合并变得容易.CVCS用户OTOH习惯于糟糕的合并,因此开发人员没有动力让它工作.(为什么当你的用户为你的垃圾付出​​同样的代价时能做些好事?)
      ......
      回顾一下:DVCS的重点是拥有许多分散的存储库并不断地来回合并变化.如果没有良好的合并,DVCS根本就没用.然而,CVCS仍然可以通过糟糕的合并来生存,特别是如果供应商可以调整其用户以避免分支.- JörgWMittag回答
  • 从技术角度来看:
    1. 录制真实DAG的历史确实有帮助!我认为主要区别在于CVCS并不总是将合并记录为与几个父母的变更集,从而丢失了一些信息.- tonfa评论
    2. 因为合并跟踪,以及每个修订都知道其父母的更基本的事实....当每个修订(每次提交),包括合并提交,知道其父项(对于合并提交,意味着拥有/记住多个父项,即合并跟踪),您可以重建图(DAG =直接非循环图)的修订历史.如果您知道修订图,则可以找到要合并的提交的共同祖先.当您的DVCS知道如何找到共同的祖先时,您不需要将其作为参数提供,例如在CVS中.
      .
      请注意,两个(或更多)提交可能有多个共同的祖先.Git利用所谓的"递归"合并策略,它合并了合并基础(共同的祖先),直到你留下一个虚拟/有效的共同祖先(在一些简化中),并且可以做简单的3路合并.- JakubNarębski回答

检查在Git中合并和/或为什么在SVN中的合并更好?

svn git version-control mercurial dvcs

48
推荐指数
4
解决办法
3546
查看次数

有没有办法在Mercurial中删除单个文件的历史记录?

我想我已经知道答案,但我想我会问:

我们有一个文件被添加到Mercurial存储库中,其中包含敏感信息.有没有办法删除该文件及其更改历史记录而不删除整个回购?

version-control mercurial dvcs

47
推荐指数
4
解决办法
1万
查看次数

Bitbucket:更新一个fork来合并主仓库的变化?

我正在使用bitbucket git repo我有只读访问权限,所以我创建了一个fork来处理我的功能.

问题:如何更新我的fork以包含对所有者所做的原始仓库所做的更改?

在github上,似乎必须执行以下操作,因此我怀疑它与此类似:

 $ git remote add upstream git://github.com/octocat/Spoon-Knife.git
 $ git fetch upstream
 $ git merge upstream/master
Run Code Online (Sandbox Code Playgroud)

我在Bitbucket文档中找不到任何关于forking的信息

git fork dvcs bitbucket

46
推荐指数
3
解决办法
2万
查看次数

我可以克隆Mercurial存储库的一部分吗?

是否可以克隆Mercurial存储库的一部分?假设存储库非常大,或者包含多个项目或多个分支.我可以只克隆部分存储库吗?

例如在Subversion中,你可能有trunkbranches.如果我只想获得主干(或其中一个分支),我可以请求[project]/trunk.如果我克隆hg repo,我会获得trunk和所有分支.这可能是我不想要的很多信息.我可以避免这个吗?

或者,如果我想在一个hg仓库中拥有多个项目,我该怎么做?也就是说,我可能会得到其中一个项目并忽略其他项目.

mercurial dvcs

44
推荐指数
5
解决办法
2万
查看次数

如何在没有*github帐户的情况下进行拉取请求*?

git的目标之一是分散.如果Github是git的中心,那么也许它可以考虑到其他集线器,并允许拉取请求发生在github 上没有托管的git URL 上.

文件是关于这个相当明确:拉请求需要你有一个Github上的帐户,你fork一个仓库在github上.这是一个真正的当前技术限制还是有办法在Github上解决这个问题?

如果没有,是否最终计划允许Github的"拉取请求"工具实际上允许从Github筒仓之外的存储库中提取?

dvcs pull github pull-request

44
推荐指数
1
解决办法
9869
查看次数

比较Bitbucket与Github的优缺点

免责声明:这是一个主观问题.请遵循相关指南.

我正在考虑将源代码从传统迁移VCSDVCS.由于拥有一个像样的GUI基于Web的前端和工作流工具是必须的,两个明显的候选人是BitbucketGithub.

不幸的是,我对他们中的任何一个都没有深入的经验,所以我真的很想在潜水前得到一些第二意见.特别受欢迎的是从团队/业务角度观察日常使用和对生产力有影响的功能.

你对它们中的任何一个有什么经验?有什么特别的亮点或烦恼吗?

git dvcs github bitbucket

41
推荐指数
4
解决办法
3万
查看次数

为什么Kiln基于Mercurial,而不是其他(D)VCS

选择Mercurial作为FogCreek Kiln的基础是什么原因,FogCreek Kiln是一个源代码管理系统,具有紧密集成的代码审查和FogBugz集成?

为什么Mercurial,而不是其他(分布式)版本控制系统,如Bazaar,Git或Monotone,或创建自己的版本控制系统,如Fossil(分布式软件配置管理,包括bug跟踪和维基)呢?

使FogCreek选择Mercurial作为Kiln引擎的功能是什么?

version-control mercurial dvcs kiln

39
推荐指数
5
解决办法
1万
查看次数

Git删除目录

我在GitHub(http://github.com/hrickards/PHP-Crypto)上有一个存储库用于我的一个小项目,其他几个正在研究.我的开发环境是Aptana Studio,我使用EGit插件,因为Aptana基本上是Eclipse.今天,设计师将网站的HTML和CSS发送到名为img的文件夹中.以前,图像位于名为images的文件夹中.没有考虑它,懒得更新CSS和HTML,我只是将图像保存在img目录中并提交给Git.但是,GitHub Web界面显示img和images目录,images目录为空.我尝试用git rm -r images和删除images目录git rm images,甚至mkdir images; git add images; git rm -r images但是无论我尝试什么,我得到相同的结果: fatal: pathspec 'images' did not match any files.

有没有人对如何删除图像有任何建议,或者我误解了Git或其他什么?

git version-control dvcs github

39
推荐指数
3
解决办法
6万
查看次数

hg本地忽略

我本来可以发誓有一种方法可以在hg repo中保留一个本地忽略文件,即一个类似于.hgignore功能的文件,但是没有检入回购.例如,如果正在使用不同的IDE,则可以使用它来忽略对IDE项目文件的更改.我很难找到它是如何完成的.有人回忆起细节吗?

version-control mercurial dvcs hgignore

38
推荐指数
2
解决办法
7211
查看次数