View Issue Details [ Jump to Notes ] | [ Print ] |
ID | Project | Category | View Status | Date Submitted | Last Update |
0012304 | CMake | Modules | public | 2011-06-24 14:52 | 2012-03-07 10:53 |
|
Reporter | Aaron C. Meadows | |
Assigned To | Brad King | |
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | CMake 2.8.4 | |
Target Version | CMake 2.8.6 | Fixed in Version | CMake 2.8.6 | |
|
Summary | 0012304: FindSubversion.cmake macro Subversion_WC_LOG hangs if credentials are not set. |
Description | If you call Subversion_WC_LOG on a directory and you do not have credentials to access the server, the macro will hang while the SVN executable waits for a password to be supplied |
Steps To Reproduce | Have a working copy but do not have saved credentials. Attempt to call Subversion_WC_LOG with that working copy as the supplied directory. Observe that the script hangs. Hit control-c, which will be passed to the SVN executable and cause it to break. Observe that the returned output printed to the terminal shows the SVN prompt for a password. |
Additional Information | This is easily handled by passing the argument --non-interactive to the SVN executable. I'm including a patch which adds this argument to the call.
NOTE: It may also be possible the Subversion_WC_INFO to suffer this same problem, though I think that is unlikely. --non-interactive could be added to this call as well, possibly abstracting the arguments out into ${Subversion_SVN_EXECUTABLE_DEFAULT_ARGUMENTS} might be appropriate. |
Tags | FindSubversion, patch |
|
Attached Files | FindSubversion.cmake.patch [^] (622 bytes) 2011-06-24 14:52 [Show Content] [Hide Content]--- ../../src.orig/cmake-2.8.4/Modules/FindSubversion.cmake 2011-02-15 14:51:41.000000000 -0600
+++ FindSubversion.cmake 2011-06-24 11:27:49.382800000 -0500
@@ -109,7 +109,7 @@
# This macro requires a svn server network access (Internet most of the time)
# and can also be slow since it access the svn server
EXECUTE_PROCESS(COMMAND
- ${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}
+ ${Subversion_SVN_EXECUTABLE} --non-interactive log -r BASE ${dir}
OUTPUT_VARIABLE ${prefix}_LAST_CHANGED_LOG
ERROR_VARIABLE Subversion_svn_log_error
RESULT_VARIABLE Subversion_svn_log_result
|
|