When i said "I have no idea where to start" i really meant it! Therefore i have a few questions...see my comments within your reply.
FYI: i have a debian system with zsh v4.2.5-7 (from a deb package) installed....in the meantime i'll update this to v4.3.2 available via the zsh website.
Peter Stephenson wrote:
This makes it sound like there are zsh functions already in place for subversion, is this correct? If so, where can i find them and how do i set my shell up to use them as i'm pretty sure they are currently not in use on my debian machine.On Wed, 02 Aug 2006 22:57:51 +0100 Nathan Haigh <n.haigh@xxxxxxxxxxxxxxx> wrote:I've started using subversion a bit recently and it annoys the hell out of me when you have to specify repositories etc with file urls since autocompletion doesn't work. e.g. svn import tmp/myproject file:///path/to/my/svn/repoIt looks like the completion function is still not all that sophisticated, so presumably no subversion user up to now has got to grips with the nitty gritty. Here's your chance to become a zsh completion wizard...
I assume you are talking about zsh functions for subversion command autocompletion here? e.g. "svn che<tab>" completes to "svn checkout" - again, i don't think i currently have this working - how do i do this?The despatcher for subversion commands doesn't have an explicit entry for "import", so it tries to synthesize it from the help text and doesn't get it right. This adds an explicit entry. I'm guessing the
Do you mean generic URL completion for things like "file:///p<tab>" should already work? If so, it is not in my case - again, how can i get it working?first argument will usually be a directory, but that can be changed if not. The URL completion for the second argument is standard across the completion system and should be good enough for your purposes.
The only problem is that i'm a total newbie to this so i apologies for my ignorance :o)Say if you come across any more problems; I only use subversion very occasionally (and the Perforce completion is a good deal more complete :-)) but it's an important thing to get right.
I've added matching parentheses to the case statement because they looked nicer. Index: Completion/Unix/Command/_subversion =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_subversion,v retrieving revision 1.19 diff -u -r1.19 _subversion --- Completion/Unix/Command/_subversion 12 Jul 2006 02:40:54 -0000 1.19 +++ Completion/Unix/Command/_subversion 2 Aug 2006 21:33:21 -0000 @@ -34,32 +34,38 @@ ) case $cmd in; - add) + (add) args+=( '*:file:_files -g "*(^e:_svn_controlled:)"' ) ;; - commit) + (commit) args+=( '*:file:_files -g "*(e:_svn_status:)"' ) ;; - delete) + (delete) args+=( '*:file:_files -g ".svn(/e:_svn_deletedfiles:)"' ) ;; - diff) + (diff) args+=( '*: : _alternative "files:file:_files -g \*\(e:_svn_status:\)" "urls:URL:_svn_urls"' ) ;; - help) + (help) args+=( '*::sub command:_svn_commands' ) + ;; + (import) + args+=( + '1:project directory:_files -/' + '2:import location: _alternative "files:file:_files" "urls:URL:_svn_urls"' + ) ;; - log) + (log) args+=( '1: : _alternative "files:file:_files -g \*\(e:_svn_controlled:\)" "urls:URL:_svn_urls"' '*:file:_files -g "*(e:_svn_controlled:)"' @@ -72,17 +78,17 @@ '*:path or url: _alternative "files:file:_files" "urls:URL:_svn_urls"' ) ;; - resolved) + (resolved) args+=( '*:file:_files -g "*(e:_svn_conflicts:)"' ) ;; - revert) + (revert) args+=( '*:file:_files -g "(.svn|*)(/e:_svn_deletedfiles:,e:_svn_status:)"' ) ;; - *) + (*) case $usage in *(SRC|DST|TARGET|URL*PATH)*) args+=(