git-multirepo 1.0.0.beta59 → 1.0.0.beta60

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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -2
  3. data/.gitbugtraq +3 -3
  4. data/.gitignore +38 -38
  5. data/.rspec +2 -2
  6. data/.rubocop.yml +79 -79
  7. data/CHANGELOG.md +71 -65
  8. data/Gemfile +4 -4
  9. data/Gemfile.lock +47 -42
  10. data/LICENSE +22 -22
  11. data/README.md +179 -179
  12. data/Rakefile +1 -1
  13. data/bin/multi +11 -11
  14. data/docs/bug-repros/91565510-repro.sh +20 -20
  15. data/git-multirepo.gemspec +32 -31
  16. data/lib/git-multirepo.rb +3 -3
  17. data/lib/multirepo/commands/add-command.rb +51 -51
  18. data/lib/multirepo/commands/branch-command.rb +88 -82
  19. data/lib/multirepo/commands/checkout-command.rb +127 -127
  20. data/lib/multirepo/commands/clone-command.rb +68 -68
  21. data/lib/multirepo/commands/command.rb +87 -87
  22. data/lib/multirepo/commands/commands.rb +15 -15
  23. data/lib/multirepo/commands/do-command.rb +101 -101
  24. data/lib/multirepo/commands/graph-command.rb +43 -43
  25. data/lib/multirepo/commands/init-command.rb +121 -121
  26. data/lib/multirepo/commands/inspect-command.rb +48 -48
  27. data/lib/multirepo/commands/install-command.rb +170 -170
  28. data/lib/multirepo/commands/merge-command.rb +249 -249
  29. data/lib/multirepo/commands/open-command.rb +55 -55
  30. data/lib/multirepo/commands/remove-command.rb +48 -48
  31. data/lib/multirepo/commands/uninit-command.rb +18 -18
  32. data/lib/multirepo/commands/update-command.rb +112 -112
  33. data/lib/multirepo/config.rb +19 -19
  34. data/lib/multirepo/files/config-entry.rb +39 -39
  35. data/lib/multirepo/files/config-file.rb +48 -46
  36. data/lib/multirepo/files/lock-entry.rb +29 -29
  37. data/lib/multirepo/files/lock-file.rb +58 -56
  38. data/lib/multirepo/files/meta-file.rb +47 -41
  39. data/lib/multirepo/files/tracking-file.rb +9 -9
  40. data/lib/multirepo/files/tracking-files.rb +65 -47
  41. data/lib/multirepo/git/branch.rb +32 -32
  42. data/lib/multirepo/git/change.rb +11 -11
  43. data/lib/multirepo/git/commit.rb +7 -7
  44. data/lib/multirepo/git/git-runner.rb +56 -56
  45. data/lib/multirepo/git/git.rb +10 -10
  46. data/lib/multirepo/git/ref.rb +38 -38
  47. data/lib/multirepo/git/remote.rb +17 -17
  48. data/lib/multirepo/git/repo.rb +129 -129
  49. data/lib/multirepo/hooks/post-commit-hook.rb +23 -23
  50. data/lib/multirepo/hooks/pre-commit-hook.rb +35 -35
  51. data/lib/multirepo/info.rb +5 -5
  52. data/lib/multirepo/logic/dependency.rb +6 -6
  53. data/lib/multirepo/logic/merge-descriptor.rb +95 -95
  54. data/lib/multirepo/logic/node.rb +72 -72
  55. data/lib/multirepo/logic/performer.rb +55 -55
  56. data/lib/multirepo/logic/repo-selection.rb +25 -25
  57. data/lib/multirepo/logic/revision-selection.rb +15 -15
  58. data/lib/multirepo/logic/revision-selector.rb +23 -23
  59. data/lib/multirepo/logic/version-comparer.rb +10 -0
  60. data/lib/multirepo/multirepo-exception.rb +6 -6
  61. data/lib/multirepo/output/extra-output.rb +12 -12
  62. data/lib/multirepo/output/teamcity-extra-output.rb +11 -11
  63. data/lib/multirepo/utility/console.rb +52 -52
  64. data/lib/multirepo/utility/popen-runner.rb +27 -27
  65. data/lib/multirepo/utility/system-runner.rb +14 -14
  66. data/lib/multirepo/utility/utils.rb +99 -99
  67. data/lib/multirepo/utility/verbosity.rb +6 -6
  68. data/resources/.gitconfig +2 -2
  69. data/resources/post-commit +6 -6
  70. data/resources/pre-commit +6 -6
  71. data/spec/integration/init_spec.rb +19 -19
  72. data/spec/spec_helper.rb +89 -89
  73. metadata +18 -6
  74. data/.multirepo.meta +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee7dcd731c30cf915573e0db73ef6ad3c5159eb1
4
- data.tar.gz: 4b1066d03462c132ebac31d2427c7a3e6e260b8f
3
+ metadata.gz: 2ae82cc67c3d1c1840ce258f201041319a57d135
4
+ data.tar.gz: a5452ee8bf7d586c40583ccf3e1219a99283af42
5
5
  SHA512:
6
- metadata.gz: 27f4f0337092ee0f9fb38e1ca4064b1f877e0950d5b9c04ae69a31e31deca98bd64f61fb7cad16b57040857cf355a2a2ce93471b6cea9808f252eabb36a920cd
7
- data.tar.gz: 84eb378cc5b672c31c68261813cfa3dae29a10fe89c14bfe1a6377e882fa039323e3eb9a8fbc985e223435b55027dad69f08e449eafd27856eb340639f1ce40d
6
+ metadata.gz: f297102fdae2aced4173da78a302c48252bac07b5364a827b4711262d1bc69b71d680c96ff475ea3da6608a1a29a9b0b7c843a9ed3b8c98a08c18df3cc9ef57b
7
+ data.tar.gz: 9453a34710176f43a4d6df8fd0689b0ee5e2298b60e90df4feb28ec609682cc9efdf0382ede45a097a01102023e74d60f4b6e04e8c79d07b1d5d89ccead68264
@@ -1,2 +1,2 @@
1
- .multirepo.lock merge=ours
2
- .multirepo.meta merge=ours
1
+ .multirepo.lock merge=ours
2
+ .multirepo.meta merge=ours
@@ -1,3 +1,3 @@
1
- [bugtraq "pivotal"]
2
- url = https://www.pivotaltracker.com/story/show/%BUGID%
3
- logRegex = (\\b\\d{8}\\b)
1
+ [bugtraq "pivotal"]
2
+ url = https://www.pivotaltracker.com/story/show/%BUGID%
3
+ logRegex = (\\b\\d{8}\\b)
data/.gitignore CHANGED
@@ -1,38 +1,38 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /test/tmp/
9
- /test/version_tmp/
10
- /tmp/
11
-
12
- ## Specific to RubyMotion:
13
- .dat*
14
- .repl_history
15
- build/
16
-
17
- ## Documentation cache and generated files:
18
- /.yardoc/
19
- /_yardoc/
20
- /doc/
21
- /rdoc/
22
-
23
- ## Environment normalisation:
24
- /.bundle/
25
- /lib/bundler/man/
26
-
27
- # for a library or gem, you might want to ignore these files since the code is
28
- # intended to run in multiple environments; otherwise, check them in:
29
- # Gemfile.lock
30
- # .ruby-version
31
- # .ruby-gemset
32
-
33
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
34
- .rvmrc
35
-
36
- # Project-specific
37
- /.multirepo
38
- /.multirepo.lock
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Specific to RubyMotion:
13
+ .dat*
14
+ .repl_history
15
+ build/
16
+
17
+ ## Documentation cache and generated files:
18
+ /.yardoc/
19
+ /_yardoc/
20
+ /doc/
21
+ /rdoc/
22
+
23
+ ## Environment normalisation:
24
+ /.bundle/
25
+ /lib/bundler/man/
26
+
27
+ # for a library or gem, you might want to ignore these files since the code is
28
+ # intended to run in multiple environments; otherwise, check them in:
29
+ # Gemfile.lock
30
+ # .ruby-version
31
+ # .ruby-gemset
32
+
33
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
34
+ .rvmrc
35
+
36
+ # Project-specific
37
+ /.multirepo
38
+ /.multirepo.lock
data/.rspec CHANGED
@@ -1,2 +1,2 @@
1
- --color
2
- --require spec_helper
1
+ --color
2
+ --require spec_helper
@@ -1,79 +1,79 @@
1
- # This is the configuration used to check the rubocop source code.
2
-
3
- AllCops:
4
- DisplayCopNames: true
5
- Exclude:
6
- - 'resources/*'
7
- - 'pkg/*'
8
- - 'docs/*'
9
- - 'spec/spec_helper.rb'
10
- - 'spec/fixtures/**/*'
11
-
12
- Style/RescueModifier:
13
- Enabled: false
14
-
15
- Lint/EndAlignment:
16
- Enabled: false
17
-
18
- Metrics/MethodLength:
19
- Enabled: false
20
-
21
- Metrics/LineLength:
22
- Enabled: false
23
-
24
- Style/EachWithObject:
25
- Enabled: false
26
-
27
- Style/Documentation:
28
- Enabled: false
29
-
30
- Style/GuardClause:
31
- Enabled: false
32
-
33
- Style/RedundantReturn:
34
- Enabled: false
35
-
36
- Style/SpaceBeforeBlockBraces:
37
- Enabled: false
38
-
39
- Style/StringLiterals:
40
- Enabled: false
41
-
42
- Style/TrailingWhitespace:
43
- Enabled: false
44
-
45
- Metrics/AbcSize:
46
- Enabled: false
47
-
48
- Metrics/ClassLength:
49
- Enabled: false
50
-
51
- Style/ElseAlignment:
52
- Enabled: false
53
-
54
- Style/HashSyntax:
55
- Enabled: false
56
-
57
- Style/MultilineOperationIndentation:
58
- Enabled: false
59
-
60
- Style/Semicolon:
61
- AllowAsExpressionSeparator: true
62
-
63
- Style/IndentationWidth:
64
- Enabled: false
65
-
66
- Style/SingleLineBlockParams:
67
- Enabled: false
68
-
69
- Metrics/CyclomaticComplexity:
70
- Max: 10
71
-
72
- Metrics/PerceivedComplexity:
73
- Max: 8
74
-
75
- Style/FileName:
76
- Enabled: false
77
-
78
- Style/SpecialGlobalVars:
79
- Enabled: false
1
+ # This is the configuration used to check the rubocop source code.
2
+
3
+ AllCops:
4
+ DisplayCopNames: true
5
+ Exclude:
6
+ - 'resources/*'
7
+ - 'pkg/*'
8
+ - 'docs/*'
9
+ - 'spec/spec_helper.rb'
10
+ - 'spec/fixtures/**/*'
11
+
12
+ Style/RescueModifier:
13
+ Enabled: false
14
+
15
+ Lint/EndAlignment:
16
+ Enabled: false
17
+
18
+ Metrics/MethodLength:
19
+ Enabled: false
20
+
21
+ Metrics/LineLength:
22
+ Enabled: false
23
+
24
+ Style/EachWithObject:
25
+ Enabled: false
26
+
27
+ Style/Documentation:
28
+ Enabled: false
29
+
30
+ Style/GuardClause:
31
+ Enabled: false
32
+
33
+ Style/RedundantReturn:
34
+ Enabled: false
35
+
36
+ Style/SpaceBeforeBlockBraces:
37
+ Enabled: false
38
+
39
+ Style/StringLiterals:
40
+ Enabled: false
41
+
42
+ Style/TrailingWhitespace:
43
+ Enabled: false
44
+
45
+ Metrics/AbcSize:
46
+ Enabled: false
47
+
48
+ Metrics/ClassLength:
49
+ Enabled: false
50
+
51
+ Style/ElseAlignment:
52
+ Enabled: false
53
+
54
+ Style/HashSyntax:
55
+ Enabled: false
56
+
57
+ Style/MultilineOperationIndentation:
58
+ Enabled: false
59
+
60
+ Style/Semicolon:
61
+ AllowAsExpressionSeparator: true
62
+
63
+ Style/IndentationWidth:
64
+ Enabled: false
65
+
66
+ Style/SingleLineBlockParams:
67
+ Enabled: false
68
+
69
+ Metrics/CyclomaticComplexity:
70
+ Max: 10
71
+
72
+ Metrics/PerceivedComplexity:
73
+ Max: 8
74
+
75
+ Style/FileName:
76
+ Enabled: false
77
+
78
+ Style/SpecialGlobalVars:
79
+ Enabled: false
@@ -1,65 +1,71 @@
1
- ## Releases
2
-
3
- To install betas run `gem install git-multirepo --pre`
4
-
5
- ## 1.0.0.beta59
6
-
7
- - **Bug Fix:** Fix clone and install error when on-disk dependency directory case does not match
8
-
9
- ## 1.0.0.beta57
10
-
11
- - **Bug Fix:** Fixed error in multi install clone error message building
12
-
13
- ## 1.0.0.beta56
14
-
15
- - **Enhancement:** Using the `--extra-output` flag will output more CI server-specific info (checkout info, errors, etc.)
16
- - **Bug Fix:** Some config flags (such as `--verbose`) were reset when calling other commands internally
17
-
18
- ## 1.0.0.beta53
19
-
20
- - **Enhancement:** Added a `--extra-output` flag to output additional CI server-specific messages (such as TeamCity service messages)
21
-
22
- ## 1.0.0.beta52
23
-
24
- - **Enhancement:** InspectCommand now takes the name of a stat as input instead of flags and provides helpful output if the provided stat name is invalid
25
- - **Enhancement:** Added a `--force` flag to `multi checkout`, which ignores uncommitted changes
26
-
27
- ## 1.0.0.beta51
28
-
29
- - **Enhancement:** `multi merge` now shows a lock file diff if the user chooses to perform an update after the merge operation
30
- - **Enhancement:** `multi merge` now uses the same update logic as `multi update` for more robustness and uniformity
31
- - **Enhancement:** `multi update` has a new `--no-diff` option to skip lock file diffing and shows diff by default
32
- - **Bug Fix:** `multi update` did not show the lock file diff when the `--commit` flag was specified
33
- - **Internals:** `multi update`, `multi do` and `multi open` now use common repo-selection logic (`--deps`, `--main`, etc.)
34
-
35
- ## 1.0.0.beta50
36
-
37
- - **Enhancement:** `multi merge` now asks to update the main repo lock file after a merge (useful for CI scenarios)
38
- - **Enhancement:** `multi update` now asks to show a lock file diff if the main repo's lock file was modified
39
- - **Enhancement:** Checking out the main repo in floating HEAD to prevent unnecessary local branch creation in `multi merge`
40
-
41
- ## 1.0.0.beta49
42
-
43
- - **Enhancement:** Added `--deps`, `--main` and `--all` flags to `multi update` and update all by default
44
- - **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
45
- - **Bug Fix:** "HEAD" was stored in the lock file instead of `nil` when in floating HEAD, which caused some operations to have unexpected results
46
- - **Bug Fix:** Incorrect default behavior for `multi open` (now defaults to "all")
47
-
48
- ## 1.0.0.beta48
49
-
50
- - **New:** `multi update` now updates tracking files in subdependencies
51
- - **Enhancement:** Manual and automated code refactorings using RuboCop
52
-
53
- ## 1.0.0.beta47
54
-
55
- - **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)
56
-
57
- ## 1.0.0.beta46
58
-
59
- - **Enhancement:** Better `multi install --ci` output
60
- - **Enhancement:** Not requiring a multirepo-enabled repo in InspectCommand, else it's not very useful to inspect random repos
61
- - **Bug Fix:** Fixed exception in `multi do` when providing only the `--help` flag
62
-
63
- ## 1.0.0.beta45 and earlier
64
-
65
- Refer to the commit history for details on earlier versions of git-multirepo.
1
+ ## Releases
2
+
3
+ To install betas run `gem install git-multirepo --pre`
4
+
5
+ ## 1.0.0.beta60
6
+
7
+ - **Enhancement:** Implemented the `--force` option in `multi branch`
8
+ - **Enhancement:** Prevent updating tracking files with an outdated version of the tool
9
+ - **Bug Fix:** Fail gracefully in case of limited tracking file permissions
10
+
11
+ ## 1.0.0.beta59
12
+
13
+ - **Bug Fix:** Fix clone and install error when on-disk dependency directory case does not match
14
+
15
+ ## 1.0.0.beta57
16
+
17
+ - **Bug Fix:** Fixed error in multi install clone error message building
18
+
19
+ ## 1.0.0.beta56
20
+
21
+ - **Enhancement:** Using the `--extra-output` flag will output more CI server-specific info (checkout info, errors, etc.)
22
+ - **Bug Fix:** Some config flags (such as `--verbose`) were reset when calling other commands internally
23
+
24
+ ## 1.0.0.beta53
25
+
26
+ - **Enhancement:** Added a `--extra-output` flag to output additional CI server-specific messages (such as TeamCity service messages)
27
+
28
+ ## 1.0.0.beta52
29
+
30
+ - **Enhancement:** InspectCommand now takes the name of a stat as input instead of flags and provides helpful output if the provided stat name is invalid
31
+ - **Enhancement:** Added a `--force` flag to `multi checkout`, which ignores uncommitted changes
32
+
33
+ ## 1.0.0.beta51
34
+
35
+ - **Enhancement:** `multi merge` now shows a lock file diff if the user chooses to perform an update after the merge operation
36
+ - **Enhancement:** `multi merge` now uses the same update logic as `multi update` for more robustness and uniformity
37
+ - **Enhancement:** `multi update` has a new `--no-diff` option to skip lock file diffing and shows diff by default
38
+ - **Bug Fix:** `multi update` did not show the lock file diff when the `--commit` flag was specified
39
+ - **Internals:** `multi update`, `multi do` and `multi open` now use common repo-selection logic (`--deps`, `--main`, etc.)
40
+
41
+ ## 1.0.0.beta50
42
+
43
+ - **Enhancement:** `multi merge` now asks to update the main repo lock file after a merge (useful for CI scenarios)
44
+ - **Enhancement:** `multi update` now asks to show a lock file diff if the main repo's lock file was modified
45
+ - **Enhancement:** Checking out the main repo in floating HEAD to prevent unnecessary local branch creation in `multi merge`
46
+
47
+ ## 1.0.0.beta49
48
+
49
+ - **Enhancement:** Added `--deps`, `--main` and `--all` flags to `multi update` and update all by default
50
+ - **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
51
+ - **Bug Fix:** "HEAD" was stored in the lock file instead of `nil` when in floating HEAD, which caused some operations to have unexpected results
52
+ - **Bug Fix:** Incorrect default behavior for `multi open` (now defaults to "all")
53
+
54
+ ## 1.0.0.beta48
55
+
56
+ - **New:** `multi update` now updates tracking files in subdependencies
57
+ - **Enhancement:** Manual and automated code refactorings using RuboCop
58
+
59
+ ## 1.0.0.beta47
60
+
61
+ - **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)
62
+
63
+ ## 1.0.0.beta46
64
+
65
+ - **Enhancement:** Better `multi install --ci` output
66
+ - **Enhancement:** Not requiring a multirepo-enabled repo in InspectCommand, else it's not very useful to inspect random repos
67
+ - **Bug Fix:** Fixed exception in `multi do` when providing only the `--help` flag
68
+
69
+ ## 1.0.0.beta45 and earlier
70
+
71
+ Refer to the commit history for details on earlier versions of git-multirepo.
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in git-multirepo.gemspec
4
- gemspec
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in git-multirepo.gemspec
4
+ gemspec
@@ -1,42 +1,47 @@
1
- PATH
2
- remote: .
3
- specs:
4
- git-multirepo (1.0.0.beta38)
5
- claide (~> 0.8, >= 0.8.0)
6
- colored (~> 1.2)
7
- os (~> 0.9.6)
8
- ruby-graphviz (~> 1.2.1)
9
- terminal-table (~> 1.4.5)
10
-
11
- GEM
12
- remote: https://rubygems.org/
13
- specs:
14
- claide (0.8.1)
15
- colored (1.2)
16
- diff-lcs (1.2.5)
17
- os (0.9.6)
18
- rake (10.4.2)
19
- rspec (3.1.0)
20
- rspec-core (~> 3.1.0)
21
- rspec-expectations (~> 3.1.0)
22
- rspec-mocks (~> 3.1.0)
23
- rspec-core (3.1.7)
24
- rspec-support (~> 3.1.0)
25
- rspec-expectations (3.1.2)
26
- diff-lcs (>= 1.2.0, < 2.0)
27
- rspec-support (~> 3.1.0)
28
- rspec-mocks (3.1.3)
29
- rspec-support (~> 3.1.0)
30
- rspec-support (3.1.2)
31
- ruby-graphviz (1.2.2)
32
- terminal-table (1.4.5)
33
-
34
- PLATFORMS
35
- ruby
36
- x64-mingw32
37
-
38
- DEPENDENCIES
39
- bundler (~> 1.7)
40
- git-multirepo!
41
- rake (~> 10.0)
42
- rspec (~> 3.1.0)
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ git-multirepo (1.0.0.beta59)
5
+ claide (~> 0.8, >= 0.8.0)
6
+ colored (~> 1.2)
7
+ naturally (~> 2.1)
8
+ os (~> 0.9.6)
9
+ ruby-graphviz (~> 1.2.1)
10
+ terminal-table (~> 1.4.5)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ claide (0.9.1)
16
+ colored (1.2)
17
+ diff-lcs (1.2.5)
18
+ naturally (2.1.0)
19
+ os (0.9.6)
20
+ rake (10.4.2)
21
+ rspec (3.1.0)
22
+ rspec-core (~> 3.1.0)
23
+ rspec-expectations (~> 3.1.0)
24
+ rspec-mocks (~> 3.1.0)
25
+ rspec-core (3.1.7)
26
+ rspec-support (~> 3.1.0)
27
+ rspec-expectations (3.1.2)
28
+ diff-lcs (>= 1.2.0, < 2.0)
29
+ rspec-support (~> 3.1.0)
30
+ rspec-mocks (3.1.3)
31
+ rspec-support (~> 3.1.0)
32
+ rspec-support (3.1.2)
33
+ ruby-graphviz (1.2.2)
34
+ terminal-table (1.4.5)
35
+
36
+ PLATFORMS
37
+ ruby
38
+ x64-mingw32
39
+
40
+ DEPENDENCIES
41
+ bundler (~> 1.7)
42
+ git-multirepo!
43
+ rake (~> 10.0)
44
+ rspec (~> 3.1.0)
45
+
46
+ BUNDLED WITH
47
+ 1.13.6