git-multirepo 1.0.0.beta43 → 1.0.0.beta44

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2ff5fa90b7325f5f997ce975839c229f9e027483
4
- data.tar.gz: 85e5266dfdafb76b7a9a4360182138825eec3af3
3
+ metadata.gz: c94db73c957e83def2963148314ae81c9867655a
4
+ data.tar.gz: a9ccff47aed61ed13e5c63e91edc9186acbd142a
5
5
  SHA512:
6
- metadata.gz: f1e0869dde622b905daa713a5d5deed7b2043d047942dc014071815df88a0ebfa6840e1968fe3ea6794a9c114503a59b7a704457a492fb6d4c7cdc73867462cf
7
- data.tar.gz: 0094423be10677e3ed047e4b8d1eb3e13c1fc8200fb964127fa6ef4a82d9b850d10e21378148bcf611f67277ebf854a12adabf79fb5ccd27da29ddd3096ccfad
6
+ metadata.gz: 6e21d03ac2e5a534db8e82e33aac4f825c3cf1a1b623f6f00431bb8979e613419ebc05a2e8ca26df5d06cdfee4661e310c3146f5cc3bffafd8b6457b3f777b9e
7
+ data.tar.gz: 1c1ffe438f95de180904f875649419eba79aa6897036a3e278c7695706874af5ecaddd22d72431bd91ac27362355bea2e469c24d71be4f43114a6bd2af55eb12
@@ -1,2 +1,2 @@
1
1
  --- !ruby/object:MultiRepo::MetaFile
2
- version: 1.0.0.beta41
2
+ version: 1.0.0.beta43
data/README.md CHANGED
@@ -122,7 +122,7 @@ Here is a quick rundown of commands available to you in git-multirepo:
122
122
  | clone | Clones the specified repository in a subfolder, then installs it. |
123
123
  | do | Perform an arbitrary Git operation in the main repository, dependency repositories or all repositories. |
124
124
  | graph | Graphs the dependency tree from the current repository. |
125
- | install | Clones and checks out dependencies as defined in the version-controlled multirepo metadata files and installs git-multirepo's local git hooks. |
125
+ | install | Clones and checks out dependencies as defined in the version-controlled multirepo metadata files and installs git-multirepo's local git hooks. Idempotent for a given main repo checkout. |
126
126
  | merge | Performs a git merge on all dependencies and the main repo, in the proper order. |
127
127
  | open | Opens repositories in the OS's file explorer. |
128
128
  | remove | Removes the specified dependency from multirepo. |
@@ -1,5 +1,5 @@
1
1
  module MultiRepo
2
2
  NAME = "git-multirepo"
3
- VERSION = "1.0.0.beta43"
3
+ VERSION = "1.0.0.beta44"
4
4
  DESCRIPTION = "Track multiple Git repositories side-by-side."
5
5
  end
@@ -111,7 +111,7 @@ module MultiRepo
111
111
 
112
112
  # Checkout!
113
113
  if config_entry.repo.checkout(revision)
114
- Console.log_substep("Checked out #{dependency_name} #{revision}")
114
+ Console.log_substep("Checked out #{dependency_name} '#{revision}'")
115
115
  else
116
116
  raise MultiRepoException, "Couldn't check out the appropriate version of dependency #{dependency_name}"
117
117
  end
@@ -10,23 +10,35 @@ module MultiRepo
10
10
  self.summary = "Clones and checks out dependencies as defined in the version-controlled multirepo metadata files and installs git-multirepo's local git hooks."
11
11
 
12
12
  def self.options
13
- [['[--hooks]', 'Only install local git hooks.']].concat(super)
13
+ [
14
+ ['[--hooks]', 'Only install local git hooks.'],
15
+ ['[--ci]', 'For use in a continuous integration context (such as on a CI build server or agent).']
16
+ ].concat(super)
14
17
  end
15
18
 
16
19
  def initialize(argv)
17
20
  @hooks = argv.flag?("hooks")
21
+ @ci = argv.flag?("ci")
18
22
  super
19
23
  end
24
+
25
+ def validate!
26
+ super
27
+ unless validate_only_one_flag(@hooks, @ci)
28
+ help! "You can't provide more than one operation modifier (--hooks, --ci, etc.)"
29
+ end
30
+ end
20
31
 
21
32
  def run
22
- ensure_in_work_tree
33
+ ensure_in_work_tree unless @ci
23
34
  ensure_multirepo_tracked
24
35
 
25
36
  if @hooks
26
37
  Console.log_step("Installing hooks in main repo and all dependencies...")
27
38
  install_hooks_step
28
39
  else
29
- Console.log_step("Cloning dependencies and installing hooks...")
40
+ Console.log_step("Installing dependencies...")
41
+ Console.log_warning("Performing continuous-integration-aware install")
30
42
  full_install
31
43
  end
32
44
 
@@ -35,8 +47,8 @@ module MultiRepo
35
47
 
36
48
  def full_install
37
49
  install_dependencies_step
38
- install_hooks_step
39
- update_gitconfigs_step
50
+ install_hooks_step unless @ci
51
+ update_gitconfigs_step unless @ci
40
52
  end
41
53
 
42
54
  def install_dependencies_step
@@ -49,7 +61,8 @@ module MultiRepo
49
61
 
50
62
  # Checkout the appropriate branches as specified in the lock file
51
63
  checkout_command = CheckoutCommand.new(CLAide::ARGV.new([]))
52
- checkout_command.dependencies_checkout_step(RevisionSelectionMode::LATEST)
64
+ mode = @ci ? RevisionSelectionMode::AS_LOCK : RevisionSelectionMode::LATEST
65
+ checkout_command.dependencies_checkout_step(mode)
53
66
  end
54
67
 
55
68
  def install_hooks_step
@@ -76,7 +89,7 @@ module MultiRepo
76
89
  if dependency.config_entry.repo.exists?
77
90
  check_repo_validity(dependency)
78
91
 
79
- Console.log_substep("Working copy '#{dependency.config_entry.repo.path}' already exists, fetching instead...")
92
+ Console.log_substep("Working copy '#{dependency.config_entry.repo.path}' already exists, fetching...")
80
93
  fetch_repo(dependency)
81
94
  else
82
95
  Console.log_substep("Cloning #{dependency.config_entry.url} into '#{dependency.config_entry.repo.path}'")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-multirepo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta43
4
+ version: 1.0.0.beta44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michaël Fortin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-29 00:00:00.000000000 Z
11
+ date: 2015-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler