Dustin J. Mitchell <dustin@zmanda.com> (dustin)


Patch Review
r31773, r26032, r25944, r25683 r32857, r31772, r30181, r25944, r25873, r25813

r32857 | dustin | 2008-09-02 12:07:08 -0500 (Tue, 02 Sep 2008)

Fix svnmerge to run when input is not from a tty.

* contrib/client-side/svnmerge/svnmerge.py
  (console_width): Condition on isatty().

Patch by: Simon Brunning <simon@brunningonline.net>
Reviewed by: Dustin J. Mitchell <dustin@zmanda.com>
             Giovanni Bajo <rasky@develer.com>


r31773 | dustin | 2008-06-18 10:05:23 -0500 (Wed, 18 Jun 2008)

* svnmerge.py
  (main): allow the use of the avail command against a URL instead of
  the current rigid requirement that a subversion working copy be
  referenced.
* svnmerge_test.py
  (testAvailURL): test avail with a URL

Patch by: Shaddy Baddah <shaddy_baddah@hotmail.com>
          Dustin J. Mitchell <dustin@zmanda.com>


r31772 | dustin | 2008-06-17 21:08:45 -0500 (Tue, 17 Jun 2008)

* svnmerge.py
  (main): fix selection of merge source as a repository relative pathid

Patch by: Shaddy Baddah <shaddy_baddah@hotmail.com>
Review by: Dustin Mitchell <dustin@zmanda.com>


r30181 | rocketraman | 2008-04-02 08:48:18 -0500 (Wed, 02 Apr 2008)

svnmerge.py: Fix a problem with r29666 for older versions of
python that do not have the encoding attribute on the sys.stdout
object.

* contrib/client-side/svnmerge/svnmerge.py
  (recode_stdout_to_file): Treat as a no-op when sys.stdout does not
    have the encoding attribute.

Found by: Justin Akehurst <justin.akehurst@isilon.com>
Patch by: Justin Akehurst <justin.akehurst@isilon.com>
          me
Review by: Dustin J. Mitchell <dustin@zmanda.com>


r26032 | giovannibajo | 2007-08-10 13:34:45 -0500 (Fri, 10 Aug 2007)

analyze_source_revs() gets the latest revision of the *branch*
repository, then proceeds to use that value against the *source*
repository; it should get the latest revision of the *source*.

This of course is not a bug in the common scenario of merges
within the same repository, but it is blocking our way to
inter-repository merges.

* svnmerge.py
  (analyze_source_revs): Get latest rev of source_url.
  
Patch by: Dustin J. Mitchell <dustin@zmanda.com>  
Review by: Giovanni Bajo <rasky@develer.com>


r25944 | dustin | 2007-08-03 11:59:44 -0500 (Fri, 03 Aug 2007)

* svnmerge_test.py
  replace single quotes in self.launch() with double-quotes (Windows compatibility)
  replace multiline expected_output with a regex
  (TestCase_launch): use 'attrib' instead of 'dir' (which is not an executable)
* svnmerge.py
  (construct_merged_log_message) normalize line endings in log message
Patch by: Luke Call <lsuvkne@onemodel.org>
Patch by: Dustin Mitchell <dustin@zmanda.com>
Patch by: Michael Willmott <mwillmott@leadgenpro.co.uk>
Review by: Hernan Martinez Foffani <hernan.martinez@ecc.es>
Review by: Dustin Mitchell <dustin@zmanda.com>


r25873 | dustin | 2007-07-28 10:52:49 -0500 (Sat, 28 Jul 2007)

Finish work begun by r22788, to improve default revision range set by "svnmerge
init" if none provided by user, for scenario where merge source is a copy of
the merge target (i.e., merging from branch back to trunk) or vice-versa.

* contrib/client-side/svnmerge/svnmerge.py
  (get_copyfrom): Add copy_committed_in_rev to returned values; add comments.
  (action_init): Use copy_committed_in_rev from get_copyfrom call for 
    correct conditional default revision range; added logic to auto-calculate 
    revision range depending on merge source and target copy relationship; add
    comments.

* contrib/client-side/svnmerge/svnmerge_test.py:
  (testUninitForce): Change test so does not depend on specific initialized
    revision number, as that is not the point of the test and this is
    now handled in testInitScenarios.  This was broken by the other
    changes, thus fixed here.
  (testInitScenarios): Added function to test how action_init behaves in 
    different circumstances.
  (testCheckInitializeEverything): Removed (now redundant, and not testing for 
    the right behavior).
  (testBidirectionalMerges):  Changed to pass with newly correct init behavior.

Patch by:  Luke Call <lsuvkne@onemodel.org>
Review by: Dustin J. Mitchell <dustin@zmanda.com>
           Giovanni Bajo <rasky@develer.com>


r25813 | dustin | 2007-07-21 22:00:25 -0500 (Sat, 21 Jul 2007)

Uses new subprocess module for in launch(), when python version allows, for a 
big performance benefit on some operating systems.  Faster because doesn't 
try to close all (unused) file descriptors. 

* svnmerge/svnmerge.py
  (launch):  Use subprocess module when possible for better performance.
* svnmerge/svnmerge_test.py
  (multilaunch):  No longer passing empty cmd strings.
  (testBlockMergeAndRollback, testMergeAndRollbackEmptyRevisionRange,
  testMergeAndRollback, testMergeWithPotentialPropertyConflict): Change
  quoting of log comment arguments for windows command parser, so they
  are kept together.

Patch by: Luke Call <lsuvkne@onemodel.org>
Review by: Dustin J. Mitchell <dustin@zmanda.com>
           Giovanni Bajo <rasky@develer.com>
(Dustin clarified comments; Dustin and Giovanni made helpful suggestions.)


r25683 | dustin | 2007-07-07 20:19:36 -0500 (Sat, 07 Jul 2007)

Prevent spurious conflicts on the merge and blocked property
when the source branch contains merge property information for
other branches i.e. a transitive merge A -> B -> C is executed.
Previously, this caused a property conflict because the initial
value on the source branch did not match the initial value on
the target branch.

This patch also prevents extra merge property information from
uninitialized branches being merged into the target. If merging
to those other branches was never initialized on the target by
the user, then the user probably does not expect to see that
information. Note that if that information *was* initialized by
the user, then the user is attempting to do graph-based merging
i.e. A -> B -> C -> A which is currently unsupported.

* contrib/client-side/svnmerge_test.py 
  (testTransitiveMerge): test a transitive merge
* contrib/client-side/svnmerge.py:
  (action_merge): Before each merge, clear the integrated/blocked
    properties. Reset these properties to known values after the
    merge is complete.

Patch by:  Raman Gupta <rocketraman@fastmail.fm>
           Dustin J. Mitchell <dustin@zmanda.com>
Review by: Giovanni Bajo <rasky@develer.com>