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.