Julian Foad <julian.f...@wandisco.com> writes: > On Thu, 2010-12-02, Noorul Islam K M wrote: > >> Noorul Islam K M <noo...@collab.net> writes: >> >> > When I was trying to come up with a patch for issue 3713, I observed the >> > following. >> > >> > For example I have two files 1.txt and 2.txt in a repository located at >> > file:///tmp/testrepo >> > >> > svn cat behaves differently for local paths and URLs. See the >> > illustration below. >> > >> > noo...@noorul:/tmp/wc/testrepo$ svn cat 1.txt 2.txt >> > 1 >> > 2 >> > >> > A) Local non-existent target followed by existing target >> > >> > noo...@noorul:/tmp/wc/testrepo$ svn cat 3.txt 1.txt >> > svn: warning: '/tmp/wc/testrepo/3.txt' is not under version control >> > 1 >> > >> > B) Non-existent URL followed by existing URL >> > >> > noo...@noorul:/tmp/wc/testrepo$ svn cat ^/3.txt ^/1.txt >> > >> > svn: File not found: revision 1, path '/3.txt' >> > >> > >> > In case A, even though the first target was non-existent it performs cat >> > operation on the second target but in the case of B, svn errors out at >> > the first failure itself. >> > >> > I am not sure about behavior of other svn commands which accepts >> > multiple targets. When I discussed this Julian in IRC, he said a >> > discussion is needed to come up with standardized behavior across svn >> > commands. Any thoughts? >> > >> >> Any updates? > > Hi Noorul. > > A good way to start a discussion of this sort is to: > > list the possible solutions; > find out and describe how the other subcommands behave;
I checked 'svn info' and it behaves the same way for both wc and URL. > say what you think is good and bad about each possible solution; > say which solution you think we should choose. > > That will make it much easier for readers to respond. I figured out that for non-existent URL path, svn_client_cat2 returns SVN_ERR_FS_NOT_FOUND which needs to be caught by svn_cl__try. Therefore I passed this code as one the arguments. Attached is the patch. All tests pass with this patch. Log [[[ Make 'svn cat' not to error out when one of the URL targets do not exist. * subversion/svn/cat-cmd.c (svn_cl__cat): Pass SVN_ERR_FS_NOT_FOUND to svn_cl__try in order to catch the error, print warning and proceed with other targets. Patch by: Noorul Islam K M <noorul{_AT_}collab.net> ]]] Thanks and Regards Noorul
Index: subversion/svn/cat-cmd.c =================================================================== --- subversion/svn/cat-cmd.c (revision 1053010) +++ subversion/svn/cat-cmd.c (working copy) @@ -78,6 +78,7 @@ SVN_ERR_UNVERSIONED_RESOURCE, SVN_ERR_ENTRY_NOT_FOUND, SVN_ERR_CLIENT_IS_DIRECTORY, + SVN_ERR_FS_NOT_FOUND, SVN_NO_ERROR)); } svn_pool_destroy(subpool);