1

我有一个 linux eclipse 项目签入我们公司的 svn。效果很好。

该项目旨在在 Windows 上进行交叉编译。

到目前为止,我只是在操作系统之间移动了源文件。但是,我想我想让 svn 为我做这件事。应该很简单,只需将 eclipse linux src 检出到 VS 项目目录中,对吗?错误的!

从 svn 中检查了正确的源,它工作正常。但是当我试图重新检查它时,我不断收到“提交未完成的文件名仍然存在冲突”错误。我什至什么都没改变!

做了一点检查。原来 linux src 目录几乎只是源代码和标题。在 MSVS 端,项目目录包含源代码和标头,但还包含一堆文件,这些文件由 VS 使用,名称如 projname.vcproj 等。

所以,我检查了一个临时目录,.\fred。检查 .\fred 回来。没问题。向 .fred、xxx.xxx 添加了一个新文件。入住报告:

svn: E200009: Commit failed (details follow):
svn: E200009: 'C:\Projects\fred\xxx.xxx' is not under version control

让我想知道那些未提交的 Visual Studio 文件。

那么,这些文件是我的问题吗?他们是否破坏了提交操作?

作为替代解决方案,我正在考虑将 VS 文件添加到 svn 中的 src 目录中。如果 linux/eclipse 检查它们,我可以告诉 eclipse 忽略它们(我认为它会为我忽略它们)。对这种方法有什么想法或建议吗?

(顺便说一句,我在 linux 方面仍然有新的资源,所以任何被破坏的东西都可以安全地恢复。)

4

1 回答 1

0

所以这是我目前正在工作的一个解决方案。我不确定它有多稳定。

警告:我使用的项目已经作为 MSVS 项目存在。

在 MSVS 解决方案目录中,将源目录(MSVS 喜欢源目录名称以匹配解决方案目录名称,因此这意味着源目录可能不命名为 src)重命名为解决方案中不涉及的内容,例如temp

SVN 签出 src(eclipse 喜欢调用 source dirs src)。

cd 进入源目录。发出命令:

svn changelist msvs *.cpp *.h

如果需要,添加 *.c。“msvs”是变更列表名称。它可以是你想要的任何东西。

这将为签出的目录创建一个更改列表。

现在,将临时目录中的剩余文件复制到源目录中。

当您需要进行签入时,请 cd 进入源目录并发出以下命令:

svn ci --changelist msvs  

笔记。你必须在 src 目录中才能工作。

于 2013-01-15T12:21:26.307 回答