首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中断似乎挂起的dcommit呼叫安全吗?

中断似乎挂起的dcommit呼叫安全吗?
EN

Stack Overflow用户
提问于 2010-11-15 17:53:34
回答 1查看 1K关注 0票数 7

我正在使用git-svn桥,并且在我的存储库中重新配置了大量的文件,所以它的组织更好一些。

我运行git svn dcommit将更改放回SVN服务器,进程似乎被挂起。在过去的45分钟里,我没有CPU使用,也没有dcommit调用的网络使用。输出卡在以下位置:

代码语言:javascript
复制
> git svn dcommit
...snip...
     R       zlib/vs2005/zconf.h => tools/zlib/vs2005/zconf.h
     R       zlib/vs2005/zlib.h => tools/zlib/vs2005/zlib.h
     R       zlib/vs2005/zlib_ds.lib => tools/zlib/vs2005/zlib_ds.lib
     R       zlib/vs2005/zlib_ds.pdb => tools/zlib/vs2005/zlib_ds.pdb
     R       zlib/vs2005/zlib_s.lib => tools/zlib/vs2005/zlib_s.lib
     R       zlib/vs2005/zlib_s.pdb => tools/zlib/vs2005/zlib_s.pdb

现在已经有45分钟了。

编辑:它最终结束时说HTTPS连接超时了。这花费了大约一个半小时的时间。

在尝试再次将更改从本地存储库重新提交到SVN服务器之前,我似乎找不到任何关于如果中断这个dcommit调用会发生什么以及我需要做什么的确切信息。

我可以回答问题的一个部分:在再次尝试之前,我需要做些什么?

在连接超时并返回提示后,我必须执行git svn fetch才能再次运行git svn dcommit。我所有的重命名操作都在SVN存储库中找到,但洗牌后留下的目录没有被删除。我不得不使用我的SVN客户端来删除它们。我不确定这是否是git-svn的问题,还是因为在那次dcommit调用期间HTTPS超时。

我仍然不知道答案是:是否中断了一个安全的dcommit?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-16 03:53:02

是的,它是安全的。

dcommit基本上对每个提交执行操作:

  1. 计算提交和其父文件之间的差异。(本质上,为提交创建一个修补程序。)
  2. 通过SVN协议发送此差异作为要提交的更改集。一旦完成,提交将驻留在SVN服务器上。
  3. 获取新提交和其他用户同时创建的任何其他新提交,并将它们在本地存储为适当的Git提交。git-svn分支引用将被更新为指向最新的。
  4. 在刚刚处理的提交到git-svn分支ref后将所有提交重新基化。(由于正在处理的提交现在应该在服务器上运行,这将导致刚刚处理的本地提交被丢弃,就像其他任何重基一样。)

如果您在步骤2期间中断(听起来就是这样),那么当前提交将在svn服务器上中止。你应该可以放心地再犯一次。

但是,如果您疑神疑鬼(在VCSes之间这样进行互操作时,您应该是这样的),您可能希望首先运行git svn rebase。这将拉下SVN上的任何新提交(包括您试图推送的提交(如果服务器端实际成功的话),并在此基础上重新设置本地分支。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4187333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档