git-multirepo 1.0.0.beta43 → 1.0.0.beta44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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