Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-3693

Multi-target update output is quite confusing

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.6.x
    • Fix Version/s: 1.7.0
    • Component/s: cmdline client
    • Labels:
      None

      Description

      I have a ~/projects/ directory on my computer in which nearly every item is a
      Subversion working copy.  I routinely begin my day by updating all those working
      copies.  This is most easily accomplished by the following complex command-line:
      
          svn up ~/projects/*
      
      Okay, not really so complex.  But by examining the output, the term "simplicity"
      would *not* come to mind:
      
      -----------------------------8< snip 8<-----------------------------------
      $ svn up projects/*
      At revision 30.
      At revision 47.
      Skipped 'projects/spec.subversion'
      Skipped 'projects/spec.viewvc'
      U    projects/subversion/site/publish/roadmap.html
      U    projects/subversion/site/publish/style/site.css
      U    projects/subversion/trunk/subversion/tests/cmdline/svntest/wc.py
      U    projects/subversion/trunk/subversion/tests/cmdline/svntest/actions.py
      U    projects/subversion/trunk/subversion/tests/cmdline/merge_tree_conflict_tests.py
      U    projects/subversion/trunk/subversion/tests/cmdline/authz_tests.py
      U    projects/subversion/trunk/subversion/include/svn_client.h
      U    projects/subversion/trunk/subversion/libsvn_client/deprecated.c
      U    projects/subversion/trunk/subversion/libsvn_ra_serf/serf.c
      U    projects/subversion/trunk/subversion/libsvn_ra_serf/property.c
      U    projects/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
      U    projects/subversion/trunk/build/generator/build_zlib.ezt
      U    projects/subversion/trunk/contrib/server-side/fsfsverify.py
       U   projects/subversion/trunk
      Updated to revision 987382.
      Updated to revision 111.
      Updated to revision 3771.
      Updated to revision 282.
      Updated to revision 148.
      Updated to revision 3748.
      
      Fetching external item into 'projects/viewvc/branches/1.0.x/templates-contrib'
      Updated external to revision 2427.
      
      
      Fetching external item into 'projects/viewvc/branches/1.1.x/templates-contrib'
      Updated external to revision 2427.
      
      
      Fetching external item into 'projects/viewvc/tags/1.1.2/templates-contrib'
      Updated external to revision 2427.
      
      
      Fetching external item into 'projects/viewvc/trunk/templates-contrib'
      Updated external to revision 2427.
      
      Updated to revision 2427.
      Summary of conflicts:
        Skipped paths: 2
      $
      -----------------------------8< snip 8<-----------------------------------
      
      The things that bother me:
      
      1.  My update has many targets, but I cannot tell from the output which bits of
      output apply to which target.
      
      2.  Two of my targets are unversioned, and thus are correctly skipped by this
      operation.  But this results in a conflict summary.  Really?  Conflicts?
      
      Surely we can do better.
      

        Activity

        Hide
        cmpilato C. Michael Pilato added a comment -

        Some dev-list discussion was had:  http://svn.haxx.se/dev/archive-2010-08/0513.shtml
        

        Show
        cmpilato C. Michael Pilato added a comment - Some dev-list discussion was had: http://svn.haxx.se/dev/archive-2010-08/0513.shtml
        Hide
        cmpilato C. Michael Pilato added a comment -

        Here's how it looks with a simple patch that notifies on the start of an update
        except in the externals case:
        
        $ svn up *
        Skipped 'BORKED'
        Updating '/home/cmpilato/projects/cvs2svn'...
        At revision 5306.
        Updating '/home/cmpilato/projects/ezt'...
        At revision 30.
        Updating '/home/cmpilato/projects/phidx'...
        At revision 58.
        Updating '/home/cmpilato/projects/private-subversion'...
        At revision 25735.
        Skipped 'spec.subversion'
        Skipped 'spec.viewvc'
        Updating '/home/cmpilato/projects/subversion'...
        U    subversion/trunk/get-deps.sh
        U    subversion/trunk/Makefile.in
        U    subversion/trunk/build.conf
        [...]
        U    subversion/trunk/CHANGES
        U    subversion/trunk/gen-make.py
         U   subversion/trunk
        Updated to revision 1036643.
        Updating '/home/cmpilato/projects/subversion-tigris'...
        Updated to revision 112.
        Updating '/home/cmpilato/projects/svnbook'...
        
        Fetching external item into 'svnbook/src/ru/nb-bin'
        Updated external to revision 2339.
        
        Updated to revision 3814.
        Updating '/home/cmpilato/projects/svncorp'...
        Updated to revision 286.
        Updating '/home/cmpilato/projects/svnedge'...
        Updated to revision 1673.
        Updating '/home/cmpilato/projects/thotkeeper'...
        Updated to revision 153.
        Updating '/home/cmpilato/projects/versioncontrol'...
        Updated to revision 3748.
        Updating '/home/cmpilato/projects/viewvc'...
        U    viewvc/trunk/lib/viewvc.py
        U    viewvc/trunk/bin/standalone.py
        U    viewvc/branches/1.1.x/lib/viewvc.py
        U    viewvc/branches/1.1.x/CHANGES
        U    viewvc/branches/1.1.x/bin/standalone.py
         U   viewvc/branches/1.1.x
        
        Fetching external item into 'viewvc/branches/1.0.x/templates-contrib'
        Updated external to revision 2474.
        
        
        Fetching external item into 'viewvc/branches/1.1.x/templates-contrib'
        Updated external to revision 2474.
        
        
        Fetching external item into 'viewvc/trunk/templates-contrib'
        Updated external to revision 2474.
        
        Updated to revision 2474.
        Summary of conflicts:
          Skipped paths: 3
        $
        

        Show
        cmpilato C. Michael Pilato added a comment - Here's how it looks with a simple patch that notifies on the start of an update except in the externals case: $ svn up * Skipped 'BORKED' Updating '/home/cmpilato/projects/cvs2svn'... At revision 5306. Updating '/home/cmpilato/projects/ezt'... At revision 30. Updating '/home/cmpilato/projects/phidx'... At revision 58. Updating '/home/cmpilato/projects/private-subversion'... At revision 25735. Skipped 'spec.subversion' Skipped 'spec.viewvc' Updating '/home/cmpilato/projects/subversion'... U subversion/trunk/get-deps.sh U subversion/trunk/Makefile.in U subversion/trunk/build.conf [...] U subversion/trunk/CHANGES U subversion/trunk/gen-make.py U subversion/trunk Updated to revision 1036643. Updating '/home/cmpilato/projects/subversion-tigris'... Updated to revision 112. Updating '/home/cmpilato/projects/svnbook'... Fetching external item into 'svnbook/src/ru/nb-bin' Updated external to revision 2339. Updated to revision 3814. Updating '/home/cmpilato/projects/svncorp'... Updated to revision 286. Updating '/home/cmpilato/projects/svnedge'... Updated to revision 1673. Updating '/home/cmpilato/projects/thotkeeper'... Updated to revision 153. Updating '/home/cmpilato/projects/versioncontrol'... Updated to revision 3748. Updating '/home/cmpilato/projects/viewvc'... U viewvc/trunk/lib/viewvc.py U viewvc/trunk/bin/standalone.py U viewvc/branches/1.1.x/lib/viewvc.py U viewvc/branches/1.1.x/CHANGES U viewvc/branches/1.1.x/bin/standalone.py U viewvc/branches/1.1.x Fetching external item into 'viewvc/branches/1.0.x/templates-contrib' Updated external to revision 2474. Fetching external item into 'viewvc/branches/1.1.x/templates-contrib' Updated external to revision 2474. Fetching external item into 'viewvc/trunk/templates-contrib' Updated external to revision 2474. Updated to revision 2474. Summary of conflicts: Skipped paths: 3 $
        Hide
        cmpilato C. Michael Pilato added a comment -

        Mmm... changing 'svn update' output is fun.  Only 90 test failures to resolve. 
        So far.  *gulp*.
        

        Show
        cmpilato C. Michael Pilato added a comment - Mmm... changing 'svn update' output is fun. Only 90 test failures to resolve. So far. *gulp*.
        Hide
        cmpilato C. Michael Pilato added a comment -

        Big ol' commit!
           Sending        trunk/subversion/include/svn_wc.h
           Sending        trunk/subversion/libsvn_client/update.c
           Sending        trunk/subversion/svn/notify.c
           Sending        trunk/subversion/svn/update-cmd.c
           Sending        trunk/subversion/tests/cmdline/copy_tests.py
           Sending        trunk/subversion/tests/cmdline/import_tests.py
           Sending        trunk/subversion/tests/cmdline/log_tests.py
           Sending        trunk/subversion/tests/cmdline/merge_reintegrate_tests.py
           Sending        trunk/subversion/tests/cmdline/merge_tests.py
           Sending        trunk/subversion/tests/cmdline/mergeinfo_tests.py
           Sending        trunk/subversion/tests/cmdline/redirect_tests.py
           Sending        trunk/subversion/tests/cmdline/schedule_tests.py
           Sending        trunk/subversion/tests/cmdline/svntest/actions.py
           Sending        trunk/subversion/tests/cmdline/update_tests.py
           Transmitting file data ..............
           Committed revision 1037738.
        
        

        Show
        cmpilato C. Michael Pilato added a comment - Big ol' commit! Sending trunk/subversion/include/svn_wc.h Sending trunk/subversion/libsvn_client/update.c Sending trunk/subversion/svn/notify.c Sending trunk/subversion/svn/update-cmd.c Sending trunk/subversion/tests/cmdline/copy_tests.py Sending trunk/subversion/tests/cmdline/import_tests.py Sending trunk/subversion/tests/cmdline/log_tests.py Sending trunk/subversion/tests/cmdline/merge_reintegrate_tests.py Sending trunk/subversion/tests/cmdline/merge_tests.py Sending trunk/subversion/tests/cmdline/mergeinfo_tests.py Sending trunk/subversion/tests/cmdline/redirect_tests.py Sending trunk/subversion/tests/cmdline/schedule_tests.py Sending trunk/subversion/tests/cmdline/svntest/actions.py Sending trunk/subversion/tests/cmdline/update_tests.py Transmitting file data .............. Committed revision 1037738.
        Hide
        cmpilato C. Michael Pilato added a comment -

        I'm a-gonna call this FIXED now.  It was my original complaint, and now I'm
        satisfied, so I can do that  :-)
        

        Show
        cmpilato C. Michael Pilato added a comment - I'm a-gonna call this FIXED now. It was my original complaint, and now I'm satisfied, so I can do that :-)

          People

          • Assignee:
            cmpilato C. Michael Pilato
            Reporter:
            cmpilato C. Michael Pilato
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development