TemporalBeing

buildbot-svn-outputdir

Sep 21st, 2011
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.94 KB | None | 0 0
  1. --- C:/Python27/Lib/site-packages/buildbot/steps/source/svn.original.py Mon Sep 19 11:31:27 2011
  2. +++ C:/Python27/Lib/site-packages/buildbot/steps/source/svn.py  Wed Sep 21 15:51:27 2011
  3. @@ -34,13 +34,14 @@
  4.      def __init__(self, svnurl=None, baseURL=None, mode='incremental',
  5.                   method=None, defaultBranch=None, username=None,
  6.                   password=None, extra_args=None, keep_on_purge=None,
  7. -                 depth=None, **kwargs):
  8. +                 depth=None, outputdir='.', **kwargs):
  9.  
  10.          self.svnurl = svnurl
  11.          self.baseURL = baseURL
  12.          self.branch = defaultBranch
  13.          self.username = username
  14.          self.password = password
  15. +   self.outputdir = outputdir
  16.          self.extra_args = extra_args
  17.          self.keep_on_purge = keep_on_purge or []
  18.          self.depth = depth
  19. @@ -52,6 +53,7 @@
  20.                                   mode=mode,
  21.                                   method=method,
  22.                                   defaultBranch=defaultBranch,
  23. +                outputdir=outputdir,
  24.                                   password=password,
  25.                                   username=username,
  26.                                   extra_args=extra_args,
  27. @@ -108,7 +110,7 @@
  28.          yield wfd
  29.          updatable = wfd.getResult()
  30.          if not updatable:
  31. -            d = self._dovccmd(['checkout', self.svnurl, '.'])
  32. +            d = self._dovccmd(['checkout', self.svnurl, self.outputdir])
  33.          elif self.method == 'clean':
  34.              d = self.clean()
  35.          elif self.method == 'fresh':
  36. @@ -122,9 +124,9 @@
  37.          d = self._sourcedirIsUpdatable()
  38.          def _cmd(updatable):
  39.              if updatable:
  40. -                command = ['update']
  41. +                command = ['update', self.outputdir]
  42.              else:
  43. -                command = ['checkout', self.svnurl, '.']
  44. +                command = ['checkout', self.svnurl, self.outputdir]
  45.              if self.revision:
  46.                  command.extend(['--revision', str(self.revision)])
  47.              return command
  48. @@ -135,8 +137,12 @@
  49.  
  50.      @defer.deferredGenerator
  51.      def clobber(self):
  52. -        cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir,
  53. +   if not self.outputdir or self.outputdir == '.':
  54. +           cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir,
  55.                                                        'logEnviron': self.logEnviron,})
  56. +   else:
  57. +       cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir + '/' + self.outputdir,
  58. +                                                      'logEnviron': self.logEnviron,})
  59.          cmd.useLog(self.stdio_log, False)
  60.          wfd = defer.waitForDeferred(
  61.                  self.runCommand(cmd))
  62. @@ -146,24 +152,28 @@
  63.              raise buildstep.BuildStepFailed()
  64.  
  65.          wfd = defer.waitForDeferred(
  66. -                self._dovccmd(['checkout', self.svnurl, '.']))
  67. +                self._dovccmd(['checkout', self.svnurl, self.outputdir]))
  68.          yield wfd
  69.          wfd.getResult()
  70.  
  71.      def fresh(self):
  72.          d = self.purge(True)
  73. -        d.addCallback(lambda _: self._dovccmd(['update']))
  74. +        d.addCallback(lambda _: self._dovccmd(['update', self.outputdir]))
  75.          return d
  76.  
  77.      def clean(self):
  78.          d = self.purge(False)
  79. -        d.addCallback(lambda _: self._dovccmd(['update']))
  80. +        d.addCallback(lambda _: self._dovccmd(['update', self.outputdir]))
  81.          return d
  82.  
  83.      @defer.deferredGenerator
  84.      def copy(self):
  85. -        cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir,
  86. +   if not self.outputdir or self.outputdir == '.':
  87. +           cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir,
  88.                                                        'logEnviron': self.logEnviron,})
  89. +   else:
  90. +       cmd = buildstep.LoggedRemoteCommand('rmdir', {'dir': self.workdir + '/' + self.outputdir,
  91. +                                                      'logEnviron': self.logEnviron,})
  92.          cmd.useLog(self.stdio_log, False)
  93.          wfd = defer.waitForDeferred(
  94.                  self.runCommand(cmd))
  95. @@ -264,7 +274,7 @@
  96.              return 'fresh'
  97.  
  98.      def _sourcedirIsUpdatable(self):
  99. -        cmd = buildstep.LoggedRemoteCommand('stat', {'file': self.workdir + '/.svn',
  100. +        cmd = buildstep.LoggedRemoteCommand('stat', {'file': self.workdir + '/' + self.outputdir +'/.svn',
  101.                                                       'logEnviron': self.logEnviron,})
  102.          cmd.useLog(self.stdio_log, False)
  103.          d = self.runCommand(cmd)
  104. @@ -276,7 +286,7 @@
  105.          return d
  106.  
  107.      def parseGotRevision(self, _):
  108. -        cmd = buildstep.RemoteShellCommand(self.workdir, ['svnversion'],
  109. +        cmd = buildstep.RemoteShellCommand(self.workdir + '/' + self.outputdir, ['svnversion'],
  110.                                             env=self.env,
  111.                                             logEnviron=self.logEnviron,
  112.                                             collectStdout=True)
Advertisement
Add Comment
Please, Sign In to add comment