git-multirepo 1.0.0.beta48 → 1.0.0.beta49

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: b62e381f56fa28e1019ec5ee90f527e3d6c0caf9
4
- data.tar.gz: c3a9718b7a7bf951b3c7ff3e7f4b41e80c010a0e
3
+ metadata.gz: 4d705faf852214b42b3a430b147767ed8c0f333d
4
+ data.tar.gz: abcd5b4b4bbe377360350c0349e061cfef5d1c29
5
5
  SHA512:
6
- metadata.gz: e0595de8789ec53bccb911f904a5f86ab53530f15db76b2986ffb14f11dd2a150912d063cb191573eb760ff0a98191dcd1d90ff6befd813f25df0de54ea2db6e
7
- data.tar.gz: 7c97e0eba324fee9bead97e3928919986b94575103b8aacb5fa885080062a114c1d2da18e5094af254af97f775296d72a4af043d918c0b62202f9aece2e8c534
6
+ metadata.gz: 64f96f9b51c7c621280e06e326e3219ddc076fff8e7f6f6667b11d0001d4f7a9d9931b955d2bcafb1a723db1c245631a19746d4e1103fb83edc987fcd37c70d1
7
+ data.tar.gz: 057b1e54d7d0c063b8fdc9d87097412a7e094ccceca8784f4bcc1f5fe27f9a88a3417d6a083f1dc96103dcc51f8fa91064210d5f7bab7704b253ef5f1cded597
data/.multirepo.meta CHANGED
@@ -1,2 +1,2 @@
1
1
  --- !ruby/object:MultiRepo::MetaFile
2
- version: 1.0.0.beta47
2
+ version: 1.0.0.beta48
data/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ ## Releases
2
+
3
+ To install betas run `[sudo] gem install git-multirepo --pre`
4
+
5
+ ## 1.0.0.beta49
6
+
7
+ - **Enhancement:** Added --deps, --main and --all flags to `multi update` and update all by default
8
+ - **Enhancement:** Log a warning on multi install --ci if the main repo HEAD is a merge commit, for CI servers to pick up and optionally force fail with
9
+ - **Bug Fix:** "HEAD" was stored in the lock file instead of `nil` when in floating HEAD, which caused some operations to have unexpected results
10
+ - **Bug Fix:** Incorrect default behavior for `multi open` (now defaults to "all")
11
+
12
+ ## 1.0.0.beta48
13
+
14
+ - **New:** `multi update` now updates tracking files in subdependencies
15
+ - **Enhancement:** Manual and automated code refactorings using RuboCop
16
+
17
+ ## 1.0.0.beta47
18
+
19
+ - **Enhancement:** Running commands using system() when we don't need to grab output (enables interactive commands in `multi do` and fixes clone/fetch progress output)
20
+
21
+ ## 1.0.0.beta46
22
+
23
+ - **Enhancement:** Better `multi install --ci` output
24
+ - **Enhancement:** Not requiring a multirepo-enabled repo in InspectCommand, else it's not very useful to inspect random repos
25
+ - **Bug Fix:** Fixed exception in `multi do` when providing only the `--help` flag
Binary file
data/lib/info.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module MultiRepo
2
2
  NAME = "git-multirepo"
3
- VERSION = "1.0.0.beta48"
3
+ VERSION = "1.0.0.beta49"
4
4
  DESCRIPTION = "Track multiple Git repositories side-by-side."
5
5
  end
@@ -48,13 +48,18 @@ module MultiRepo
48
48
  end
49
49
 
50
50
  def log_ci_info
51
- Console.log_warning("Performing continuous-integration-aware install")
51
+ Console.log_info("Performing continuous-integration-aware install")
52
52
  Console.log_info("Using git-multirepo #{MultiRepo::VERSION}")
53
53
 
54
54
  main_repo = Repo.new(".")
55
55
  main_repo_branch = main_repo.current_branch
56
56
  meta_file = MetaFile.new(".").load
57
57
 
58
+ if (main_repo.head.merge_commit?)
59
+ Console.log_warning("[MERGE COMMIT] The checked-out main repo revision is a merge commit.")
60
+ Console.log_warning("[MERGE COMMIT] Lock file might not represent a valid project state.")
61
+ end
62
+
58
63
  table = Terminal::Table.new do |t|
59
64
  t.title = "Revision Info"
60
65
  t.add_row ["Tracked Using", "git-multirepo #{meta_file.version}"]
@@ -34,13 +34,13 @@ module MultiRepo
34
34
  ensure_in_work_tree
35
35
  ensure_multirepo_enabled
36
36
 
37
- if @all
38
- open_dependencies
39
- open_main
40
- elsif @main_only
37
+ if @main_only
41
38
  open_main
39
+ elsif @deps_only
40
+ open_dependencies
42
41
  else
43
42
  open_dependencies
43
+ open_main
44
44
  end
45
45
  end
46
46
 
@@ -9,23 +9,34 @@ module MultiRepo
9
9
 
10
10
  def self.options
11
11
  [
12
+ ['[--all]', 'Update the main repository and all dependencies.'],
13
+ ['[--main]', 'Update the main repository.'],
14
+ ['[--deps]', 'Update dependencies.'],
12
15
  ['[--force]', 'Update the tracking files even if dependencies contain uncommitted changes.'],
13
16
  ['[--commit]', 'Commit the tracking files after updating them.']
14
17
  ].concat(super)
15
18
  end
16
19
 
17
20
  def initialize(argv)
21
+ @all = argv.flag?("all")
22
+ @main_only = argv.flag?("main")
23
+ @deps_only = argv.flag?("deps")
18
24
  @commit = argv.flag?("commit")
19
25
  @force = argv.flag?("force")
20
26
  super
21
27
  end
22
28
 
29
+ def validate!
30
+ super
31
+ unless validate_only_one_flag(@all, @main_only, @deps_only)
32
+ help! "You can't provide more than one operation modifier (--deps, --main, etc.)"
33
+ end
34
+ end
35
+
23
36
  def run
24
37
  ensure_in_work_tree
25
38
  ensure_multirepo_enabled
26
39
 
27
- Console.log_step("Updating...")
28
-
29
40
  dependencies_clean = Utils.dependencies_clean?(ConfigFile.new(".").load_entries)
30
41
  if dependencies_clean || @force
31
42
  update_tracking_files_step
@@ -37,11 +48,28 @@ module MultiRepo
37
48
  end
38
49
 
39
50
  def update_tracking_files_step
51
+ if @main_only
52
+ Console.log_step("Updating main repo...")
53
+ update_main
54
+ elsif @deps_only
55
+ Console.log_step("Updating dependencies...")
56
+ update_dependencies
57
+ else
58
+ Console.log_step("Updating main repo and dependencies...")
59
+ update_dependencies
60
+ update_main
61
+ end
62
+ end
63
+
64
+ def update_dependencies
40
65
  Performer.dependencies.each do |dependency|
41
66
  path = dependency.config_entry.path
42
67
  name = dependency.config_entry.name
43
68
  update_tracking_files(path, name) if Utils.multirepo_enabled?(path)
44
69
  end
70
+ end
71
+
72
+ def update_main
45
73
  update_tracking_files(".", "main repo")
46
74
  end
47
75
 
@@ -83,6 +83,7 @@ module MultiRepo
83
83
  def current_branch
84
84
  return nil unless exists? && head_born?
85
85
  name = GitRunner.run(@path, "rev-parse --abbrev-ref HEAD", Verbosity::OUTPUT_NEVER).strip
86
+ return nil if name == "HEAD" # Code assumes that current_branch will be nil when we're in floating HEAD
86
87
  Branch.new(self, name)
87
88
  end
88
89
 
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.beta48
4
+ version: 1.0.0.beta49
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-06-05 00:00:00.000000000 Z
11
+ date: 2015-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -144,6 +144,7 @@ files:
144
144
  - .multirepo.meta
145
145
  - .rspec
146
146
  - .rubocop.yml
147
+ - CHANGELOG.md
147
148
  - Gemfile
148
149
  - Gemfile.lock
149
150
  - LICENSE