
Key: |
QB-1444
|
Type: |
New Feature
|
Status: |
Resolved
|
Resolution: |
Fixed
|
Priority: |
Major
|
Assignee: |
Unassigned
|
Reporter: |
Justin Georgeson
|
Votes: |
1
|
Watchers: |
0
|
If you were logged in you would be able to see more operations.
|
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
Environment:
|
linux
|
|
I have an SVN repo which is basically a shell folder structure with svn:externals properties to setup a workspace for a large maven/tycho build. It has over 100 svn:externals. Maintaining the individual Repository objects and Checkout steps is a nightmare. I'm basically having to manage it by using REST to grab the XML, edit it either by hand or with a perl script, and then push the modified XML up with another REST call. An option to list the commits since the last build for all the externals would be an extremely appreciated improvement to the maintainability of my configs.
|
Description
|
I have an SVN repo which is basically a shell folder structure with svn:externals properties to setup a workspace for a large maven/tycho build. It has over 100 svn:externals. Maintaining the individual Repository objects and Checkout steps is a nightmare. I'm basically having to manage it by using REST to grab the XML, edit it either by hand or with a perl script, and then push the modified XML up with another REST call. An option to list the commits since the last build for all the externals would be an extremely appreciated improvement to the maintainability of my configs. |
Show » |
|
It could be implemented as follows
1. First build of a configuration, take snapshot of each configured Repsitories, build executes
2. During build Repositories are checked out. After each checkout completes, run 'svn status --xml' and parse the file for entries
<entry
path="path/to/external/wc">
<wc-status
props="none"
item="external">
</wc-status>
</entry>
take snapshot of each such entry.
3. Scheduled build triggers, perform normal process of 'svn info' on configured Repositories to compare HEAD revision to snapshot from previous build. If any externals properties were modified, this creates a new revision in the configured repository, so the build condition is met. Take new snapshots of the configured Repositories, execute build.
4. The build does 'svn update' of the configured repositories and runs 'svn status --xml' on each working copy to refresh the list of externals. Take snapshots of externals. Can now list commits to externals which had snapshots from previous build. Can also delete svn:externals working copies which had a snapshot in previous build but are no longer present in the XML status report (the svn update does not delete unversioned files/folders).