2012-01-16 26 views
2

我的项目版本1.0成功在Visual Studio 2008中生成,但是当我将Visual Studio升级到版本2010时,构建我的项目失败(出于某些原因)。GIT:我应该在稳定版本的项目中提交输出文件(如* .exe,* .lib)吗?

我的项目已更改,新版本已准备就绪(版本2.0)。它成功建立在Visual Studio 2010上。

现在,如果我想访问“my-project-version-1.0.exe”,我应该签出版本1.0,安装Visual Studio 2008并通过Visual Studio 2008构建它。我无法通过Visual Studio构建它2010.

我没有提交我的项目的任何输出文件。

当我在下一次稳定版本的项目中访问我的项目的旧版本时,我应该提交输出文件(如* .exe,* .lib)吗?

有没有更好的主意?

+0

另请参阅http://programmers.stackexchange.com/questions/128238/is-it-good-practice-to-store-framework-runtimes-under-source-control了解更一般的上下文。 – VonC

回答

4

将非源文件置于版本控制下通常不是一个好主意。如果坚持,可以将其添加到一个提交中,并在下一个提交中将其删除,并标记该提交。

然而,你可以做的是保持可执行文件分开。例如,如果您使用github,则可以上传文件,以便以后可以下载它们,例如已编译的可执行文件或库。

+0

如果二进制文件很大,即使它们被删除,它们仍将保留在使存储库变大的历史记录中。 – johnny

+0

@johnny,以及如果它们中只有一个实例保留在存储库中,那么这不是什么大问题。事实上,他想把二进制文件保存在某个地方,所以空间无论如何都需要浪费。 – Shahbaz

2

你应该建立持续集成,所以当你有一个稳定的版本时,总会有一个工件发布(可执行文件,文档等)。

欲了解更多信息,请致电jenkins

请注意:存储库仅用于源代码以及可用于生成可执行文件的所有其他文件。 您通常应避免将可执行文件放入存储库。

2

最好的办法是将使它在Visual Studio 2010年工作

我个人,并在所有的专业背景我工作的,宁愿保持编译的文件出库的。二元差异没有意义。

取而代之的是保存在仓库之外(或另一个仓库)的所有版本的备份,所以你的源代码与编译后的文件保持干净的分离。

-1

我们把二进制文件放在版本控制下。它们位于代码的单独目录中,并且我们的cmake脚本将二进制文件复制到输出到它们的目录中。

/src /目录有一个到/ bin /的外部链接,所以任何检出/ src /的人都会自动获取二进制文件。 cmake脚本然后将二进制文件从/ src/bin /复制到/ build/debug或/ build/release(对于Visual Studio)。编译后,更新后的二进制文件被复制回/ src/bin/

我可以在低级别,编译,提交和同事更新时进行更改,当他们不需要重新编译我的代码时他们正在研究几层。

相关问题