2012-06-11 3 views
0

My SVN Repository Layout ...Buildbot и Множественная SVN Ветвь

Project_Name(root)/trunk 
      /branches/ 
      /branches/new_feature_of_trunk1 
      /branches/new_feature_of_trunk2 
      /tags/ 
      /tags/ETC1 
      /tags/ETC2 

я пытался сделать BuildBot построить несколько ветвей моего репозитория, как например .../багажник и/Филиалов/new_feature_of_trunk1 .Это как я его код

from buildbot.changes.svnpoller import SVNPoller, split_file_branches 
source_code_svn_url='http://domain.com/svn/Project_Name/' 
c['change_source'].append(
    SVNPoller(
     svnurl=source_code_svn_url, 
     split_file=split_file_branches, 
     pollinterval=60, 
     histmax=10, 
    ) 
) 

def modified_files(change): 
    for name in change.files: 
     if name.endswith(".c"): 
      return True 
     elif name.endswith(".h"): 
      return True 
    return False 

from buildbot import scheduler 
from buildbot.changes.filter import ChangeFilter 
s1=scheduler.AnyBranchScheduler(
    name="Project_Test", 
    treeStableTimer=2*60, 
    change_filter=ChangeFilter(
     branch=[ 
      'trunk', 
      'branches/new_feature_of_trunk1' 
     ] 
    ), 
    builderNames=[ 
     "Windows-x64-VS10", 
    ], 
    fileIsImportant=modified_files 
) 

c['schedulers']=[s1] 

from buildbot.process import factory 
from buildbot.steps import source,shell 
from buildbot.process.properties import WithProperties 
from buildbot.config import BuilderConfig 
step_source_svn=source.SVN(
    mode='copy', 
    baseURL=source_code_svn_url, 
    defaultBranch='trunk', 
    retry=(30,2) 
) 

f2=factory.BuildFactory() 
f2.addStep(step_source_svn) 
f2.addStep(
    shell.Compile(
     command=[ 
      "devenv.com", 
      "MakeMe.sln", 
      "/build", 
      "Release^|Win32" 
     ], 
     logEnviron=False 
    ) 
) 

Проблема в этом .. я знаю, что добавил defaultBranch = 'trunk'. но почему это только контрольный багажник не весь корень? то всякий раз, когда я удаляю его defaultBranch. я получил эту ошибку

exceptions.RuntimeError: The SVN source step belonging to builder 'Windows-x64-VS10' does not know which branch to work with. This means that the change source did not specify a branch and that defaultBranch is None.

то код, который я для моей buildmaster, чтобы сообщить подчиненному строить, если есть modified_files в/стволу или ветви// new_feature_of_trunk1 .. если модифицируется в обеих ветвях в то же SVN Пересмотр. то он будет компилировать/багажник первой перед/филиалов/new_feature_of_trunk1 ...

, но как то, что я сказал он не работает как то, что я хочу

ответ

0

Если один набор изменений содержит изменения в обеих ветвях, то должно быть создано два изменения, и одна сработала для каждого изменения.

0

Старого пост я знаю, но для всех, кто приходит таким образом, что это может помочь:

Вам нужно создать планировщик для филиалов. Прямо сейчас, похоже, что у вас есть только одно здание филиала, но если у вас есть планировщик, который проходит ветку, он может пойти лучше для вас.

Nightly(name="new1",   builderNames=["Project_Test"], branch="branches/new_feature_of_trunk1", onlyIfChanged=True, hour=range(0, 24, 2)), 
Nightly(name="new2",   builderNames=["Project_Test"], branch="branches/new_feature_of_trunk2", onlyIfChanged=True, hour=range(0, 24, 2)), 

Если вы хотите, чтобы оформить все сразу и ваш шаг компиляции делает все ветви, ваша source_code_svn_url должна быть одна ветвь выше

Смежные вопросы