首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Git格式-补丁要兼容svn吗?

Git格式-补丁要兼容svn吗?
EN

Stack Overflow用户
提问于 2009-04-02 03:45:14
回答 8查看 35K关注 0票数 99

有没有办法让用git format-patch创建的补丁兼容svn,这样我就可以把它提交到svn repo了?

我正在github上编写一个svn存储库,并希望将我的更改提交回主存储库。我需要创建一个补丁来做这件事,但是补丁不能应用,因为git格式的补丁不同于svn。是不是有什么秘密我还没发现?

更新:虽然目前还没有脚本或原生git方法可以做到这一点,但我还是设法在今年早些时候找到了一篇关于如何手动完成这项工作的帖子。我已经按照说明进行了操作,并成功地将我的git补丁与svn一起使用。

如果有人可以尝试写一个脚本来完成这一点,并为git项目做出贡献,我是每个人都会非常感激的。

http://kerneltrap.org/mailarchive/git/2008/1/15/570308/thread#mid-570308

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-11-14 19:01:22

我总是不得不用谷歌搜索这个,但我发现(对我来说)非常有效的方法是:

  • 使用git diff --no-prefix master..branch > somefile.diff创建补丁,主和分支部分是可选的,取决于您希望如何获取差异。
  • 将其发送到任何位置并使用patch -p0 < somefile.diff应用。

它似乎总是对我很好,似乎是我遇到的最简单的方法。

票数 96
EN

Stack Overflow用户

发布于 2012-03-24 21:38:51

简短的答案是patch -p1 -i {patch.file}

有关详情,请参阅此博客:Creating Subversion patches with git

票数 21
EN

Stack Overflow用户

发布于 2010-11-30 05:16:15

下面是一个帮助脚本,用于与最新的svn变更集和给定的提交进行比较:http://www.mail-archive.com/dev@trafficserver.apache.org/msg00864.html

代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/sh
#
# git-svn-diff
# Generate an SVN-compatible diff against the tip of the tracking branch
TRACKING_BRANCH=`git config --get svn-remote.svn.fetch | sed -e 's/.*:refs\/remotes\///'`
REV=`git svn find-rev $(git rev-list --date-order --max-count=1 $TRACKING_BRANCH)`
git diff --no-prefix $(git rev-list --date-order --max-count=1 $TRACKING_BRANCH) $* |
sed -e "s/^+++ .*/&    (working copy)/" -e "s/^--- .*/&    (revision $REV)/" \
-e "s/^diff --git [^[:space:]]*/Index:/" \
-e "s/^index.*/===================================================================/"
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/708202

复制
相关文章

相似问题

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