2011-03-07 59 views
0

我对SVN非常陌生。我创建了自己的存储库,该存储库在apache Web服务器上运行,并且正在使用NetBeans 6.9.1 IDE构建Java Web应用程序。我已经使用内置的Subversion功能成功地将我的Web应用程序项目提交到我的存储库。NetBeans - SVN - Java WAR

现在,我想要做的是签出到我的web服务器(tomcat)的存储库的具体修订版本。我可以使用SVN CO命令执行此操作,但是,NetBeans目前仅提交以下文件/目录。 的build.xml nbproject文件/ 的src/ 测试/ 网/

理想的情况下(我认为)我要提交由DIST /文件夹我的Web应用程序的WAR文件,因此部署项目时,我签了修订。

我注意到当我在NetBeans中右键单击我的项目并转到'Subversion> Svn Properties'时,会出现一个svn:ignore语句,其值为& dist。我非常肯定这就是为什么dist文件夹没有被提交到存储库。

  1. 是提交WAR文件的最佳方式,以后通过提交dist文件夹与checkout命令一起使用? i。如果是这样,我怎样才能删除Svn属性中的svn:ignore语句?我试图删除它,但它会自动重新出现。二,如果没有,我怎样才能更有效地使用SVN和我的仓库来更新我的webapps?

非常感谢您的帮助!

回答

1

不要提交可以从源生成的文件。或者至少,如果您确实想要提交版本文件,请将它们提交到单独的树中,从构建war的dist文件夹断开并在开发过程中重建。

只有在您成功通过所有测试后,才会提交该发布(如果是),并且您应该始终在发布后为整个源代码树创建一个标记。这样,您可以始终签出标签并重建相同的版本。您还可以在中继线中的下一个版本中工作时轻松创建发行版的维护分支。

+0

谢谢JB。如何为WAR文件创建单独的树并确保在我从NetBeans提交项目时提交它?或者,我怎样才能自动从我的Web服务器编译源文件(我喜欢只需运行带或不带-r的svn update的想法)? – Steve 2011-03-07 20:11:32

+0

当您拥有一套完整的新功能或缺陷修复程序,并且通过了所有测试(单元,集成,验收,性能等)时,才能发布到Web服务器。经常发布是一个好主意,但不是每次提交都会发布。此外,如果您在每次提交时都进行全新的战争,那么您的SVN仓库将很快变得非常庞大。如果你坚持在每次提交之后释放(例如对测试服务器),我建议使用像Hudson这样的持续集成服务器,它将检测SVN树中的变化,编译并运行所有测试,然后在确定后发布。 – 2011-03-07 20:19:36

+0

太好了,谢谢JB,这样更有意义!直到去年,我还在用记事本编写我的Java应用程序/网络应用程序,所以我才开始习惯IDE的所有节省时间的功能。哈德森是另一个我听说过的,从未使用过的。我会研究它。再次感谢+1。 – Steve 2011-03-07 20:33:35