Class SvnSwitch

All Implemented Interfaces:
ISvnOperationOptionsProvider

public class SvnSwitch extends AbstractSvnUpdate<Long>
Represents switch operation. Switches working tree of target to switchTarget\ switchTarget's pegRevision at revision.

Summary of purpose: this is normally used to switch a working directory over to another line of development, such as a branch or a tag. Switching an existing working directory is more efficient than checking out switchTarget from scratch.

If depth is SVNDepth.INFINITY, switches fully recursively. Else if it is SVNDepth.IMMEDIATES, switches target and its file children (if any), and switches subdirectories but does not update them. Else if SVNDepth.FILES, switches just file children, ignoring subdirectories completely. Else if SVNDepth.EMPTY, switches just target and touches nothing underneath it.

If externals are ignored (ignoreExternals is true), doesn't process externals definitions as part of this operation.

If allowUnversionedObstructions is true then the switch tolerates existing unversioned items that obstruct added paths. Only obstructions of the same type (file or directory) as the added item are tolerated. The text of obstructing files is left as-is, effectively treating it as a user modification after the switch. Working properties of obstructing items are set equal to the base properties. If allowUnversionedObstructions is false then the switch will abort if there are any unversioned obstructing items.

If the caller's ISVNEventHandler is non-null, it is invoked for paths affected by the switch, and also for files restored from text-base. Also ISVNCanceller.checkCancelled() will be used at various places during the switch to check whether the caller wants to stop the switch.

This operation requires repository access (in case the repository is not on the same machine, network connection is established).

SvnOperation.run() method returns value of the revision value to which the working copy was actually switched.

SvnOperation.run() method returns value of the revision to which the working copy was actually switched.

Version:
1.7
  • Field Details

    • depthIsSticky

      private boolean depthIsSticky
    • ignoreAncestry

      private boolean ignoreAncestry
    • switchTarget

      private SvnTarget switchTarget
  • Constructor Details

  • Method Details

    • isDepthIsSticky

      public boolean isDepthIsSticky()
      Returns whether depth is sticky. If depthIsSticky is set the operation will use depth as status scope, otherwise SVNDepth.UNKNOWN will be used.
      Returns:
      true if the depth is sticky, otherwise false
    • isIgnoreAncestry

      public boolean isIgnoreAncestry()
      Returns whether to ignore ancestry when calculating merges.
      Returns:
      true if ancestry should be ignored, otherwise false
      Since:
      1.7, Subversion 1.7
    • getSwitchTarget

      public SvnTarget getSwitchTarget()
      Returns the repository location as a target against which the item will be switched.
      Returns:
      switch target
    • setDepthIsSticky

      public void setDepthIsSticky(boolean depthIsSticky)
      Sets whether depth is sticky. If depthIsSticky is set the operation will use depth as status scope, otherwise SVNDepth.UNKNOWN will be used.
      Parameters:
      depthIsSticky - true if the depth is sticky, otherwise false
    • setIgnoreAncestry

      public void setIgnoreAncestry(boolean ignoreAncestry)
      Sets whether to ignore ancestry when calculating merges.
      Parameters:
      ignoreAncestry - true if ancestry should be ignored, otherwise false
      Since:
      1.7, Subversion 1.7
    • setSwitchTarget

      public void setSwitchTarget(SvnTarget switchTarget)
      Sets the repository location as a target against which the item will be switched.
      Parameters:
      switchTarget - switch target
    • ensureArgumentsAreValid

      protected void ensureArgumentsAreValid() throws SVNException
      Overrides:
      ensureArgumentsAreValid in class SvnOperation<Long>
      Throws:
      SVNException
    • isChangesWorkingCopy

      public boolean isChangesWorkingCopy()
      Gets whether the operation changes working copy
      Overrides:
      isChangesWorkingCopy in class SvnOperation<Long>
      Returns:
      true if the operation changes the working copy, otherwise false