
Key: |
QB-163
|
Type: |
Bug
|
Status: |
Resolved
|
Resolution: |
Cannot Reproduce
|
Priority: |
Critical
|
Assignee: |
Robin Shen
|
Reporter: |
Bryan Dyck
|
Votes: |
0
|
Watchers: |
1
|
If you were logged in you would be able to see more operations.
|
|
|
QuickBuild
Created: 16/Nov/06 12:46 PM
Updated: 21/Nov/06 06:28 PM
|
|
Component/s: |
None
|
Affects Version/s: |
None
|
Fix Version/s: |
None
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
Environment:
|
Any
|
|
If you are using Perforce as your SCM, you will run into problems if you ever leave QuickBuild's "is clean build" option set to "yes", as that deletes the working copy of a source tree.
Since Perforce is not aware of file deletions that do not use the corresponding Perforce commands, when the build configuration next tries to sync to head on that repository, it will not sync any of the deleted files. More generally, this eventually results in a build failure, as none of the necessary build files are present in the working copy of the source tree. This problem seems to be exacerbated by the fact that when you manually trigger a build configuration (for the first time), "Is clean build" defaults to "yes" - it's very easy to miss this, especially when giving instructions to others. It would be nice if this defaulted to "no", as many projects in my experience have a specific "clean" target, rather than QuickBuild's "delete the entire source tree" approach.
While it's easy enough to work around this by always making sure that "is clean build" is set to "no", it only takes one miss to run into this and the lost time can be significant for large source repositories and complex build processes.
Perhaps QuickBuild could have a way of either configuring a specific build target that gets executed by the "is clean build" feature, or this feature could be disabled and/or disregarded if a build configuration is using a Perforce repository so as not to cause the working copy to get out of sync with the Perforce depot.
|
Description
|
If you are using Perforce as your SCM, you will run into problems if you ever leave QuickBuild's "is clean build" option set to "yes", as that deletes the working copy of a source tree.
Since Perforce is not aware of file deletions that do not use the corresponding Perforce commands, when the build configuration next tries to sync to head on that repository, it will not sync any of the deleted files. More generally, this eventually results in a build failure, as none of the necessary build files are present in the working copy of the source tree. This problem seems to be exacerbated by the fact that when you manually trigger a build configuration (for the first time), "Is clean build" defaults to "yes" - it's very easy to miss this, especially when giving instructions to others. It would be nice if this defaulted to "no", as many projects in my experience have a specific "clean" target, rather than QuickBuild's "delete the entire source tree" approach.
While it's easy enough to work around this by always making sure that "is clean build" is set to "no", it only takes one miss to run into this and the lost time can be significant for large source repositories and complex build processes.
Perhaps QuickBuild could have a way of either configuring a specific build target that gets executed by the "is clean build" feature, or this feature could be disabled and/or disregarded if a build configuration is using a Perforce repository so as not to cause the working copy to get out of sync with the Perforce depot. |
Show » |
Change by Robin Shen [19/Nov/06 08:35 PM]
|
Field |
Original Value |
New Value |
Resolution
|
|
Cannot Reproduce
[ 5
]
|
Status
|
Open
[ 1
]
|
Resolved
[ 5
]
|
|
Can you build again cleanly in verbose logging mode, to see what the actual p4 command being executed?
Thanks.
Robin