2012-06-08 32 views
0

是否可以将rsync计算出的差异添加到Git存储库?将Rsync的差异添加到Git

所以我想绕过Git diff计算,并将我自己的diff添加到Git存储库中以获取特定文件。

是否有任何低级别的实用工具,我可以通过它将差异补充到Git?

+1

抱歉,但我没有看到兴趣。为什么不使用标准工具应用diff,并将diff提交给git? – CharlesB

+0

这将需要很多处理,并且确实耗时。 –

+0

为什么,你有这么大的差异?应用差异通常很快。什么时候需要? – CharlesB

回答

0

我不完全确定你在问什么,所以让我知道这个答案是否会漏掉标记。

Git不关心如何文件被修改。所以,如果你有一个工作的拷贝在两个位置签出,你可以使用rsync从一个地方传播文件更改到其他,然后简单地说:

git add file_that_was_changed 
git commit -m "commit changes from rsync" 

这正是会发生,如果你同样的事情只需手动编辑文件。 git从来没有试图在这里计算差异,所以目前还不清楚你期望看到什么样的节省。 Git不会在存储库中存储增量;每次您对文件进行更改时,git都会整体存储新版本的文件。

如果这对您的问题没有帮助,那么如果您可以使用您期望的工作流程的样例来更新它,那就太好了。我们可能能够提供替代解决方案。

+0

当git运行它自己的垃圾收集器时,它会创建包文件。包文件包含文件的差异和最新版本。我们可以通过git gc命令触发垃圾回收器。所以我想知道是否有任何实用工具可以帮助我将diffs直接放入git包文件中。 –

+0

对于你想要达到的目标,我还有点不清楚。你有一个存储库还是很多存储库?如果前者,它似乎并不像你提出的那样会给你赢得很多胜利。如果是后者,您可以正常更新一个存储库,然后使用rsync将其分发到其他位置......虽然我不确定这会比使用git的本机机制更快。 – larsks

+0

我将在服务器上有多个存储库。差异将通过rsync在客户端计算。因此直接将diff添加到包文件将节省我的服务器处理时间。 –