将SVN工作副本提交到Git仓库

3
我目前正在使用一些插件处理一个已经检出的SVN项目,我希望将所有工作(包括当前版本的SVN检出)保存在一个单独的git存储库中。
我尝试过将SVN工作副本提交到git中实现这个目标。然而,当我在新电脑上进行pull操作时,SVN工作副本已经损坏了。特别是,似乎git没有检查任何.svn/tmp/和.svn/props/文件夹。
我现在重新检出了SVN项目。是否有办法将被忽略的文件夹添加到我的git repo中(即使我的.gitignore为空,git status仍会忽略它们),或者强制SVN重新生成它们?
3个回答

2

以点号开头的文件扩展名通常被认为是隐藏文件。所以,我不是Git专家,但我猜测Git默认会忽略这些文件。

我可以问一下你希望通过在Git中保留svn元数据来实现什么目标吗?


我想使用git来管理我对一个使用svn的开源项目的补丁工作。我的方法(一旦它能够正常工作)将允许我对我的补丁进行多个git修订,并仍然可以使用tortoisesvn轻松生成补丁文件。这一切都依赖于元数据被保存,以便正常的svn工具仍然能够正常工作。 - mchr
但如果git没有监视/更改.svn目录,那么它们就会被保留,当您完成后,可以使用它们来生成补丁。顺便说一句,只需覆盖新的检出即可轻松生成补丁。如果重命名或移动文件,则不会像这些信息从Git传输到SVN,因此能够保存.svn文件并没有比拥有另一个原始的已检出副本更有帮助。 - Assaf Lavie
这些都是明智的建议。然而,我更喜欢能够快速地git pull我的repo,包括svn工作副本,并让它“只是工作”。听起来似乎不可能,所以明天早上我会写一个快速脚本来重新生成缺失的tmp和props目录。 - mchr

1
不要忘记,如果这些`.svn/tmp/`和`.svn/props/`目录中有一些是空的,它们不会被简单地添加到git仓库中。
这是按设计,与`.gitignore`无关。

我忘记了空目录的限制。我可以通过编写一个脚本来重新生成任何缺失的目录来修复这个问题。 - mchr
您的声望已按要求重新计算。 - Bill the Lizard
@Bill:感谢您进行声望重新计算 :) - VonC

0

我之前对git-svn不是很了解。看起来它可能实现我想要的功能,但感觉不够直观。你能推荐一个好的入门教程吗? - mchr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接