2013-03-25 97 views
0

我有什么应该是一个svn回购。在我的电脑本地文件夹中。我不知道是否有可能,但我想转换它,所以它只使用git。我不再有.svn文件夹中访问的svn服务器和所有有转换本地svn回购给git

all-wcprops 
entries 
format 
prop-base 
props 
text-base 
tmp 

我曾尝试做svn log但它开始寻求凭据。我也尝试通过做一些类似svnadmin verify /folder的验证来验证它是svn回购,但它所说的全部是svnadmin: Can't open file 'format': No such file or directory。我需要的只是提交历史。

+2

AFAIK历史记录存储在中央SVN服务器上,如果您无法访问它,则不再有历史记录。这就是为什么DVCS比SVN更好的原因之一,所有开发人员都有完整历史记录的副本,可以在发生某种故障时用作备份。 – 2013-03-25 20:32:10

+0

[This question](http://stackoverflow.com/questions/13574743/does-the-svn-1-7-working-copy-format-store-the-entire-history-of-the-repo)表示为许多。所以,看起来,鉴于您无法访问中央仓库,您不再有提交历史记录,并且必须从git开始。 – ajp15243 2013-03-25 20:38:41

+0

术语明智,你实际上有一个svn _working copy_。这与存储库完全不同。该存储库是存储在svn服务器上的。您正在查找的信息在工作副本中不可用。 – ThatBlairGuy 2013-03-25 21:16:14

回答

1

如果你不介意失去历史(我在我的评论中提到,如果你没有访问中央服务器,你没有访问历史记录),你可以在同一个文件夹中初始化一个git repo,除了行.svn/之外,还可以添加一个.gitignore文件包含你通常在SVN中忽略的所有文件/文件夹,忽略.svn文件夹,然后添加/提交所有内容。

带命令行的git,这看起来像:

cd path/to/repo 
git init 
touch .gitignore 
#EDIT THE .gitignore FILE HERE 
git add . 
git commit -m "Initial commit" 

如果以后要清理掉.svn目录,你可以使用werd的答案或clone the repo to another folder的链接。

3

如果这是存储库(不是本地工作空间),请使用git svn clone将其篡改为新创建的git存储库。通过星期天检查结果5种方式,将SVN拖到一张漂亮舒适的CD/DVD上以便妥善保管。

请注意,git svn clone可能需要很长时间,因为它会依次要求SVN重新创建曾经存在的每个单一修订版本,然后将其作为提交进行集成。 SVN在挖掘旧东西时效率低下,并且由git svn处理也不是精确的恒星。对于一个不那么大的远程SVN回购,它可能需要一两天。连接断开后,我不得不重启几次。我不记得是否正确的咒语是git svn clone再次或git svn rebase,或其他(是的,它是可怕的看到一个空的克隆库,但下载的东西在那里)。

+1

不幸的是,它听起来像一个本地工作区,而不是回购本身。 – ajp15243 2013-03-25 20:48:37