2011-03-25 61 views
3

我已阅读S.O.中的所有TeamCity,SVN和标签问题。但没有接缝适用于我的具体问题。TeamCity - SVN和标签:如何正确地做到这一点?

在这里,我们对SVN以下结构:

svn://server/root 
       /projectA 
       /trunk 
       /tags 
       /projectB 
       /trunk 
       /tags 

在我配置了SVN根为项目像这样的TeamCity:

svn://server/root/ProjectA/trunk 

而构建过程工程像一个魅力。

但是现在我想添加标签,但即使设置标签规则的文档,或任何其他设置我所知道的,在指定为我的最新尝试:

/ProjectA/trunk=>/ProjectA/tags 

我得到以下错误:

jetbrains.buildServer.vcs.VcsException: Labeling the path 'ProjectA/trunk' to 'ProjectA/tags/build-24' has failed with the error: svn: CHECKOUT of '/svn/root/!svn/ver/5792/ProjectA/tags': 403 Forbidden (https://server:8443) 
    at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.throwLabelingError(SvnSupport.java:430) 
    at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.label(SvnSupport.java:418) 
    at jetbrains.buildServer.vcs.impl.VcsLabeler.setLabel(VcsLabeler.java:45) 
    at jetbrains.buildServer.vcs.impl.VcsLabeler.access$400(VcsLabeler.java:64) 
    at jetbrains.buildServer.vcs.impl.VcsLabeler$3$1.run(VcsLabeler.java:4) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.tmatesoft.svn.core.SVNAuthenticationException: svn: CHECKOUT of '/svn/root/!svn/ver/5792/ProjectA/tags': 403 Forbidden (https://server:8443) 
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:62) 
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51) 
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:623) 
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:274) 
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:262) 
    at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doCheckout(DAVConnection.java:452) 
    at org.tmatesoft.svn.core.internal.io.dav.DAVCommitEditor.checkoutResource(DAVCommitEditor.java:468) 
    at org.tmatesoft.svn.core.internal.io.dav.DAVCommitEditor.addDir(DAVCommitEditor.java:136) 
    at jetbrains.buildServer.buildTriggers.vcs.svn.SvnCopyHelper$CopyCommitPathHandler.handleCommitPath(SvnCopyHelper.java:138) 
    at org.tmatesoft.svn.core.internal.wc.SVNCommitUtil.driveCommitEditor(SVNCommitUtil.java:139) 
    at jetbrains.buildServer.buildTriggers.vcs.svn.SvnCopyHelper.doCopy(SvnCopyHelper.java:102) 
    at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnection.label(SvnConnection.java:861) 
    at jetbrains.buildServer.buildTriggers.vcs.svn.SvnSupport.label(SvnSupport.java:416) 

有没有人有任何理由为什么会发生这种情况,或者我该如何正确设置?

及时:访问SVN的用户正确地执行签出,因为TeamCity被配置为在每次构建之前清理签出文件夹。

+0

你真的需要标签吗?没有svn修订版删除标签的需要?尤其是当编译no〜=修订号时? – 2011-03-27 15:10:32

+0

@James这里的关键是我们有不同的构建配置,其中一个我们用于发布到生产环境,因此,标记SVN对我们来说非常重要。 – 2011-03-27 21:56:35

回答

4

我会成立类似的根源:

 svn://server/root/ProjectA 

而且具有标记为:

 trunk=>tags 

这就是我有我的VCS成立。 SVN错误问题有点here。 试一试。

+0

以这种方式设置TeamCity中SVN根的原因是,如果设置为根项目,TeamCity将在构建之前签出整个树。我们采取措施在构建之前清理整个结帐文件夹。 – 2011-03-26 03:41:08

+2

您可以使用结帐规则将结帐限制为仅包含项目A. – JMason 2011-03-28 15:49:41

+0

我也尝试过这种方式...没有运气! – 2011-03-29 14:19:46