rakelib/workflow.rake
author Jan Vrany <jan.vrany@labware.com>
Mon, 27 Jun 2022 15:13:20 +0100
changeset 325 7d9550327b8d
parent 322 d31ea885c8fa
child 326 42a9250a00b2
permissions -rw-r--r--
Rakefiles: simplify `push()` function ...as there's no need to mess up with remotes.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
# This file contains various tasks usefull for Smalltalk/X jv-branch 
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
# development. Currently it only supports working with Mercurial repositories,
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
# Honestly, there's not much one can do with CVS, we're using it only for
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
# packages that have not been converted to Mercurial. 
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
namespace :'workflow' do
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
  # A helper function to :push-upstream and push-staging tasks
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
     8
  def hg_repositories
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
     9
    project.packages_and_application.each do |pkg|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    10
      unless pkg.nested_package?
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
        repo = Rake::Stx::Configuration::Repository::find(pkg.repository)
241
481556cfa16d Rakefiles: fixed tasks `workflow:*` to work on SWING CI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    12
        if repo != nil and repo.type == :'hg' and (File.exists?(BUILD_DIR / pkg.directory / '.hg' / 'hgrc'))
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    13
          hg = HG::Repository.new(BUILD_DIR / pkg.directory)
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    14
          yield pkg, hg
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
        end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
      end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    17
    end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    18
  end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    19
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    20
  def push(remote, user, pass, review_only, push_bookmark)
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    21
    has_changes = false
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    22
    hg_repositories do |pkg, hg|
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    23
      opts = {
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    24
          :user => user,
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    25
          :pass => pass,
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    26
      }
105
983a637074e6 CI: Revise pipelines, use "integration" pipeline by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    27
      paths = hg.paths
325
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    28
      unless paths[remote]
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    29
        puts ''
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    30
        puts "!! repository #{hg.path} has no #{remote} repository defined - skipping !!"
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    31
        puts ''
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    32
        return
105
983a637074e6 CI: Revise pipelines, use "integration" pipeline by default
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
    33
      end
108
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    34
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    35
      # STC and librun are special - never push them automatically
325
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    36
      # to upstream / default repo, must be done manually. This is
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    37
      # mainly beacuse there are on separate protected repositories
108
054919e32ff0 Various fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    38
      # not accessible without a special setup. Sigh...
325
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    39
      if ((pkg.name == 'stx:stc') or (pkg.name == 'stx:librun')) and ((remote == 'upstream') or (remote == 'canonical'))
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    40
        if !review_only
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    41
          puts ''
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    42
          puts "== Skipping push of #{pkg.name} - you must push manually =="
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    43
          puts''
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    44
        end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    45
      else
322
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    46
        has_changes_in_this_repo = false
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    47
        if review_only or STDIN.tty?
116
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    48
          opts[:rev] = '.'
325
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    49
          remote_url = hg.paths[remote] || remote
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    50
          bookmark = hg.bookmark
325
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    51
          hg.outgoing(remote, **opts) do | status, stdout |
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    52
            case status.exitstatus
322
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    53
            when 0
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    54
              puts ''
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    55
              puts "== changes going to #{remote_url} =="
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    56
              STDOUT.print stdout
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    57
              puts "Will update bookmark '#{bookmark}" if push_bookmark and bookmark
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    58
              puts '===================================='
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    59
              has_changes = true
322
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    60
              has_changes_in_this_repo = true
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    61
            when 1
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    62
              # nothing
322
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    63
            else
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    64
              raise Exception.new("Failed to do 'outgoing' from #{remote} (exit code #{status.exitstatus})")
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    65
            end
116
2512c874e5e1 CI: Oops, fixed task `wofkflow:push-upstream` so it actually pushes commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 108
diff changeset
    66
          end
322
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    67
        end
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    68
        if not review_only
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    69
          if not STDIN.tty? or (has_changes_in_this_repo and yesNO("Push to #{remote_url}")) then
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    70
            (push_bookmark && bookmark) ? (opts[:bookmarks] = ['.']) : (opts[:rev] = '.') # bookmark can be uninitialized
325
7d9550327b8d Rakefiles: simplify `push()` function
Jan Vrany <jan.vrany@labware.com>
parents: 322
diff changeset
    71
            hg.push(remote, **opts)
322
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    72
            has_changes = true
d31ea885c8fa Rakefiles: support interactive push in `rake workflow:push`
Jan Vrany <jan.vrany@labware.com>
parents: 311
diff changeset
    73
          end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    74
        end
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    75
      end
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    end
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    77
    has_changes
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
  end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    80
  desc 'Display changes to be pushed to upstream repositores (use it to review what workflow:push-upstream would do)'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    81
  task :'out-upstream', :user, :pass do |t, args|
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    82
    RakeFileUtils.verbose(false) do
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    83
      has_changes = push('upstream', args[:user], args[:pass], true, false)
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
    84
      puts 'No changes to be pushed to upstream repositories' unless has_changes
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    85
      exit(has_changes ? 0 : 1 )
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    86
    end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    87
  end
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    88
  task :'out-upstream' => :'setup'
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    89
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    90
  desc 'Push currently checked out revisions to upstream repositories (to be called after all tests pass on all configurations)'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
    91
  task :'push-upstream', :user, :pass do |t, args|
88
112075e99cef Support for 'upstream' repositories refactored.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 86
diff changeset
    92
    push('upstream', args[:user], args[:pass], false, false)
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
  end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
  task :'push-upstream' => :'setup'
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
    96
311
71d918531d37 Rakefiles: fix 'rake out` and `rake push` tasks
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    97
  desc 'Display changes to be pushed (use it to review what workflow:push would do)'
71d918531d37 Rakefiles: fix 'rake out` and `rake push` tasks
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
    98
  task :'out', :user, :pass do |t, args|
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
    99
    RakeFileUtils.verbose(false) do
311
71d918531d37 Rakefiles: fix 'rake out` and `rake push` tasks
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
   100
      has_changes = push('default', args[:user], args[:pass], true, true)
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 127
diff changeset
   101
      puts 'No changes to be pushed to staging repositories' unless has_changes
127
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   102
      exit(has_changes ? 0 : 1 )
664296ccdb4a Improved tasks `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   103
    end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   104
  end
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   105
  task :'out-staging' => :'setup'
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   106
311
71d918531d37 Rakefiles: fix 'rake out` and `rake push` tasks
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
   107
  desc 'Push currently checked out revisions (to be used by developer to test her changes)'
71d918531d37 Rakefiles: fix 'rake out` and `rake push` tasks
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
   108
  task :'push', :user, :pass do |t, args|
71d918531d37 Rakefiles: fix 'rake out` and `rake push` tasks
Jan Vrany <jan.vrany@labware.com>
parents: 241
diff changeset
   109
    push('default', args[:user], args[:pass], false, true)
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
  end
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
  task :'push-staging' => :'setup'
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   112
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   113
  desc '(Auto)merge changes (from eXept)'
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   114
  task :'merge' => :'setup' do
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   115
    unless which("hg-automerge.rb")
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   116
      info "Cannot find 'hg-automerge.rb' in PATH"
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   117
      info 'You may find it at https://bitbucket.org/janvrany/jv-scripts'
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   118
      error "Cannot find 'hg-automerge.rb' in PATH"
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   119
    end
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   120
    hg_repositories_failed_to_merge = []
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   121
    hg_repositories do |pkg, hg|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   122
      if File.exist? (hg.path / '.hgautomerge')
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   123
        info "Merging #{hg.path}"
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   124
        sh "hg-automerge.rb --cwd #{hg.path}"
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 116
diff changeset
   125
      else
86
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   126
        info "Not merging #{hg.path} - no merge config found."
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   127
        info "To configure run: 'hg-automerge.rb --cwd #{hg.path} --config'"
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   128
      end
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   129
    end
f2a7a4378c22 Added task `workflow:merge' to ease merging code from eXept
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 79
diff changeset
   130
  end
79
1058962ee3ef Added new tasks: `workflow:out-staging` and `workflow:out-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 78
diff changeset
   131
68
61d8bee7c4d4 Added new tasks - `workflow:push-upstream` and `workflow:push-staging`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
end