如何使用git svn作为svn存储库的中间审查工具?
在我工作的公司中,我们有一项政策,即所有代码在签入SVN存储库之前都应该经过审查。通常,在我提交之前,我只是让一个同事复习一下,但在这一刻,有几天没有人在附近,我有几个任务要和同一个班级一起做 我安装了git,并使用git svn创建了一个本地存储库。我在一段时间后提交了我将要提出的每一个更改,并且使用如何使用git svn作为svn存储库的中间审查工具?,git,commit,git-svn,Git,Commit,Git Svn,在我工作的公司中,我们有一项政策,即所有代码在签入SVN存储库之前都应该经过审查。通常,在我提交之前,我只是让一个同事复习一下,但在这一刻,有几天没有人在附近,我有几个任务要和同一个班级一起做 我安装了git,并使用git svn创建了一个本地存储库。我在一段时间后提交了我将要提出的每一个更改,并且使用git svn dcommit,我可以在主存储库中同步我的内容 现在的问题是:如果我的同事在几天后将审查我的资料,他不同意一次提交,或者希望我做一些额外的更改(例如代码注释),会发生什么情况?我如
git svn dcommit
,我可以在主存储库中同步我的内容
现在的问题是:如果我的同事在几天后将审查我的资料,他不同意一次提交,或者希望我做一些额外的更改(例如代码注释),会发生什么情况?我如何做到这一点,而不必进行额外的提交,最终将显示在我的SVN主存储库中
例如,为了便于理解,我们假设我正在处理一个文件
- SVN获取了版本1000
- 添加了代码更改,git提交
- 添加了代码更改B,git提交
- 添加了代码更改C、git提交
- SVN版次1001-代码变更A
- SVN版次1002-修改代码更改B+附加注释
- SVN版次1003-代码更改C
我对git不太熟悉,对SVN也很熟悉。如何在不进行第四次提交的情况下将提交的内容更改为代码更改B?只需创建一个分支并在该分支上进行提交即可。让您的同事晚点查看代码,然后将代码合并回主干(例如)或其他分支。只需创建一个分支并对该分支执行提交即可。让您的同事晚些时候查看代码,然后将代码合并回主干(例如)或其他分支。关键是在获得批准之前不要将更改推送到svn。一旦运行了git svn dcommit,git就失去了编辑和重新排序提交的能力
dcommit
公开您的更改,并且svn的历史记录(在大多数情况下)是不可变的
我通常在分支中进行更改,并将它们推送到公共git存储库中,我将其位置提供给代码审阅者。然后,我可以在另一个分支继续从事另一个项目。根据审查的反馈,我可以在我的工作存储库中对分支进行更改并重新发布以供审查,当一切就绪时,我会进行最后的
git svn dcommit
以将更改最终确定为svn。关键是在获得批准之前不要将更改推送到svn中。一旦运行了git svn dcommit,git就失去了编辑和重新排序提交的能力dcommit
公开您的更改,并且svn的历史记录(在大多数情况下)是不可变的
我通常在分支中进行更改,并将它们推送到公共git存储库中,我将其位置提供给代码审阅者。然后,我可以在另一个分支继续从事另一个项目。根据审查的反馈,我可以在我的工作存储库中对分支进行更改并重新发布以供审查,当一切就绪时,我会执行最后的
git svn dcommit
以完成对svn的更改。首先,在提交到trunk
之前,您不需要额外的VCS在公司执行代码审查。这是对的。正确的(明智的)方法是,在分支机构中进行更改,完成后让同事检查分支机构,检查代码,对分支机构进行补救性更改,然后任何有权的人都会将分支机构合并到trunk
。这是基本的VCS协议。如果你的公司不是这样做的,那么当涉及到风投时,这肯定表明你的公司做错了
如果你的公司政策是空洞的,因此你必须使用外部工具,那么请回答以下问题
比如说,为了
可理解性-我正在工作
在一个文件上
- SVN获取了版本1000
- 添加了代码更改,git提交
- 添加了代码更改B,git提交
- 添加了代码更改C、git提交
- SVN版次1001-代码变更A
- SVN版次1002-修改代码更改B+附加注释
- SVN版次1003-代码更改C
但是你真的,真的应该使用SVN分支和合并来完成所有这一切。首先,你不应该需要额外的VCS在你的公司执行代码审查,然后再提交到
trunk
。这是对的。正确的(也是明智的)方法是,在分支中进行更改,完成后让同事检查分支,检查代码,提交r