git-svn 的一个坑

2015-06-02 08:10:37 +08:00
 582033
公司用的svn,并且是自动线上布署;有一同事A,之前都是用svn的,在自己的忽悠下也开始用git-svn。

A所在的小组新起一项目,然后项目有条不紊的进行中...

一日,需要一JS的库实现某些功能,A把之前本地下自己的一些Js库copy到了新项目中。

因为这JS库也是从其它项目复制来的,而且A君之前一直用svn的,但复制时没把.svn目录删掉,直接把 .svn文件夹所在的Js库目录 git add xx/进去做了一个commit foo,然后用git-svn 把foo dcommit到了svn服务器,然后好戏开始上演了..

所有参与项目的其它人checkout这个项目的时候都会卡在这个foo这里,线上自动布署也卡死在这里,A君删除.svn再次提交也没法覆盖这个历史;其他人可以从最新的commit 来checkout,但线上是自动的没法控制。

整个项目就此崩溃了...

PS:svn应该是也可以像git一样有个类似-f的参数吧,不过估计我们也没权限。

后来听说A所在小组重新起了个项目。
3342 次点击
所在节点    分享发现
14 条回复
xi_lin
2015-06-02 08:39:38 +08:00
自动部署为啥没法控制?
add完status看一眼是好习惯
582033
2015-06-02 08:49:59 +08:00
@xi_lin status
只显示./<js目录>,不会显示里面还有个.svn的
自动部署是之前公司内部的一个部署系统,勾选哪个文件/目录就自动检出最新版本
bugsnail
2015-06-02 09:00:12 +08:00
崩溃了?代码找不回来了?
然后,这个项目就不要了...开新的项目?
582033
2015-06-02 09:02:07 +08:00
所有参与项目的其它人checkout这个项目的时候都会卡在这个foo这里,没法提交新版本。
clino
2015-06-02 09:11:08 +08:00
是.svn的提交全进去了?可是这个在git提交的时候会列出来啊?提交的时候自己不看的?

这里也能看出svn性能和git比实在太差,git性能最强,想当年我们第一个android项目的时候,我因为用惯了svn想用,结果初始提交完全没有办法提交上去,然后再试mercurial还是不行,最后不得不用git,熟悉以后觉得git还真是最棒的,不光是性能
lingo233
2015-06-02 09:14:48 +08:00
貌似lz忽悠他们用也是一个坑(笑
582033
2015-06-02 09:37:34 +08:00
@clino
目录结构如下的时候

--project
|
|--sta
|
|----js
|
|---.svn

直接吧sta目录add进去, 然后执行git status 是不会显示.svn的吧,而且js库里面那么多文件确实也不容易注意到.

现在我自己的做法是把.开头的文件都加入.gitignore中,如有需要手动add.
582033
2015-06-02 09:39:33 +08:00
@clino ...文字的发出来结构乱了

clino
2015-06-02 09:42:45 +08:00
@582033

├── js
│   ├── .svn
│   │   └── t3
│   └── t2
└── t

12 directories, 16 files
$ git add .
git status
位于分支 master

初始提交

要提交的变更:
(使用 "git rm --cached <file>..." 撤出暂存区)

新文件: js/.svn/t3
新文件: js/t2
新文件: t
timonwong
2015-06-02 09:49:52 +08:00
我还遇到过由于SVN服务器比较旧,用 git-svn 写过几次,git-svn 就从 svn 里面读不出来的情况(用纯 svn 正常)
582033
2015-06-02 09:50:32 +08:00
@clino 恩,是会显示,看来是文件太多了没看到
FrankFang128
2015-06-02 10:09:25 +08:00
叫你不升级svn1.8
wwqgtxx
2015-06-02 12:46:50 +08:00
.gitignore文件没写么?
jixiangqd
2015-06-02 15:53:18 +08:00
看来要把.svn加入.gitignore

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/195428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX