<< Back to previous view

[QB-233] Checking multiple subtrees from a subversion repository fails to label correct
Created: 05/Apr/07  Updated: 30/May/07

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: Matthew Inger Assigned To: Robin Shen
Resolution: Won't Fix Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown


 Description   
I have a configuration where I checkout the following from my repository:

/DNA non-recursive --> /DNA
/DNA/ums recursive --> /DNA/ums

I do this so that i can get some properties file at the root level, but not have
to checkout the entire DNA tree.

Everything builds and publishes to ivy just fine. However, when I try to label,
it fails with the following error (it looks like it's trying to delete something out of a
tag, which is not a valid operation in subversion). Instead, if you checkout multiple trees
from the same branch/revision in the same subversion repository, it should only attempt the
label creation once. I know this is a headache with subversion if you end up with two disparate
trees, or multiple revisions/branches in the same checkout, but there needs to be some sort of
useful solution to this.

2007-04-05 21:07:07,895 [Thread-2017] INFO - Checking necessary condition of step "label".
2007-04-05 21:07:07,895 [Thread-2017] INFO - Condition satisfied, running step "label".
2007-04-05 21:07:07,896 [Thread-2017] INFO - Labeling repository: DNA
2007-04-05 21:07:07,897 [Thread-2017] INFO - Label source path: /DNA/
2007-04-05 21:07:08,026 [Thread-2032] WARN - svn: URL 'http://svn.fiberlink.com:8000/svn/dna/tags/dna-dna-reorg-qa-0/DNA' non-existent in that revision
2007-04-05 21:07:08,234 [Thread-2036] WARN - svn: URL 'http://svn.fiberlink.com:8000/svn/dna/tags/dna-dna-reorg-qa-0' non-existent in that revision
2007-04-05 21:07:08,236 [Thread-2017] INFO - Seems that url "http://svn.fiberlink.com:8000/svn/dna/tags/dna-dna-reorg-qa-0" does not exist, creating...
2007-04-05 21:07:10,341 [Thread-2017] INFO - Label source path: /DNA/ums
2007-04-05 21:07:10,464 [Thread-2017] WARN - Destination url "http://svn.fiberlink.com:8000/svn/dna/tags/dna-dna-reorg-qa-0/DNA/ums" already exists, deleting...
2007-04-05 21:07:10,606 [Thread-2044] WARN - svn: MERGE request failed on '/svn/dna/tags/dna-dna-reorg-qa-0/DNA'
2007-04-05 21:07:10,606 [Thread-2044] WARN - svn: 'pre-commit' hook failed with error output:
2007-04-05 21:07:10,606 [Thread-2044] WARN - You can not check in changes in tags.
2007-04-05 21:07:10,606 [Thread-2044] WARN - Make a branch and make your changes there.
2007-04-05 21:07:10,608 [Thread-2017] ERROR - Step "label" is failed: ERROR: Failed to run command: Executing 'svn' with arguments:
'delete'
'http://svn.fiberlink.com:8000/svn/dna/tags/dna-dna-reorg-qa-0/DNA/ums'
'-m'
'Label applied by QuickBuild'
'--non-interactive'
'--quiet'
'--username'
'********'
'--password'
'******'

The ' characters around the executable and arguments are
not part of the command.
, returned code: 1

 Comments   
Comment by Matthew Inger [ 05/Apr/07 03:16 PM ]
I've done this checkout manually in my directory, and have found that I can do the following:


svn -m "applying label" copy DNA http://svn.fiberlink.com/svn/dna/tags/test1



with no ill effects. granted this is all from the same branch/revision that i checked out, but
it's a good start to changing the subversion labelling technique at least for this special case.

Comment by Matthew Inger [ 06/Apr/07 07:29 AM ]
Upon further review, this might be more a function of the pre-commit hooks than anything else. Our pre-commit hook blocks anything other than add requests to the /tags area. I've modified it to allow the build user (which quickbuild logs in as) to not be subject to this condition. So, while tagging now creates multiple revisions, it at least ends up with the proper result, and not a build failure.

That being said, it would be useful to copy the local checkout up to the tag. It seems it does a repository to repository copy.
However, if i do a non-recursive checkout of something, it tags recursively, which I don't believe it should.
Comment by Robin Shen [ 08/Apr/07 06:21 PM ]
QuickBuild need to perform label multiple times if there are multiple modules defined as some times the modules definition are not overlapped. And once it detects an existing path in the repository under tags directory, it will try to delete that path first before copying. It ends up with multiple revisions for a label operation, but it does not hurt I think.

As to copying the local checkout instead of using the module url, I do not think it will help in this case. It seems that Subversion will always try to replicate the whole directory recursively even if your working directory is populated with "--non-recursively" option. Please correct me if I am obviously wrong on this.

Regards.
Robin
Generated at Thu Oct 02 23:21:53 UTC 2025 using JIRA 189.