On Fri, 04 Aug 2006, David Glasser wrote:
> svnversion gives a misleading error message when given a versioned
> file as an argument, and "svnversion -h" only sort of implies that you
> aren't supposed to do this. Do other folks think this is a bug? I
> don't necessarily think svnversion should be bloated to give useful
> information for this, but perhaps the error message should be more
> like "'beep' is not a directory", and all the references to "path" in
> the help text should be "directory". I'd be happy to make a patch to
> do this if folks thought this was the right thing to do.
> $ ls -l beep
> -rw-r--r-- 1 glasser wheel 0 Aug 3 17:03 beep
> $ svn st -v beep
> 2 2 glasser beep
> $ svnversion beep
> 'beep' not versioned, and not exported
It's clearly wrong for 'svnversion' to say that your versioned "beep"
file isn't versioned. A quick fix would be to check to see whether
'svnversion' was passed a file argument on the command-line for
WC_PATH, and use its parent instead for that case.
This could affect subsequent error handling, but it does seem less
broken than the current state of affairs.
Fix 'svnversion' from claiming that versioned files are not versioned.
(main): Use parent dir if a file argument is passed on the
command-line for WC_PATH.
Found by: David Glasser <email@example.com>
--- subversion/svnversion/main.c (revision 20984)
+++ subversion/svnversion/main.c (working copy)
@@ -111,6 +111,7 @@
const char *wc_path, *trail_url;
+ svn_node_kind_t kind;
svn_boolean_t no_newline = FALSE, committed = FALSE;
@@ -219,10 +220,15 @@
trail_url = NULL;
+ /* As we only operate on directories, if we were passed a file on
+ the command-line, use its parent directory instead. */
+ SVN_INT_ERR(svn_io_check_path(wc_path, &kind, pool));
+ if (kind == svn_node_file)
+ wc_path = svn_path_dirname(wc_path, pool);
SVN_INT_ERR(svn_wc_check_wc(wc_path, &wc_format, pool));
if (! wc_format)
- svn_node_kind_t kind;
SVN_INT_ERR(svn_io_check_path(wc_path, &kind, pool));
if (kind == svn_node_dir)
Received on Sat Aug 5 03:22:25 2006
- application/pgp-signature attachment: stored