git-multirepo 1.0.0.beta51 → 1.0.0.beta52

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -2
  3. data/.gitbugtraq +3 -3
  4. data/.gitignore +38 -38
  5. data/.multirepo.meta +2 -2
  6. data/.rspec +2 -2
  7. data/.rubocop.yml +79 -79
  8. data/CHANGELOG.md +48 -43
  9. data/Gemfile +4 -4
  10. data/Gemfile.lock +42 -42
  11. data/LICENSE +22 -22
  12. data/README.md +178 -154
  13. data/Rakefile +1 -1
  14. data/bin/multi +11 -11
  15. data/docs/bug-repros/91565510-repro.sh +20 -20
  16. data/docs/git-multirepo-cheatsheet.docx +0 -0
  17. data/git-multirepo.gemspec +31 -31
  18. data/lib/git-multirepo.rb +3 -3
  19. data/lib/multirepo/commands/add-command.rb +51 -51
  20. data/lib/multirepo/commands/branch-command.rb +82 -82
  21. data/lib/multirepo/commands/checkout-command.rb +123 -121
  22. data/lib/multirepo/commands/clone-command.rb +68 -68
  23. data/lib/multirepo/commands/command.rb +86 -86
  24. data/lib/multirepo/commands/commands.rb +15 -15
  25. data/lib/multirepo/commands/do-command.rb +101 -101
  26. data/lib/multirepo/commands/graph-command.rb +43 -43
  27. data/lib/multirepo/commands/init-command.rb +121 -121
  28. data/lib/multirepo/commands/inspect-command.rb +48 -39
  29. data/lib/multirepo/commands/install-command.rb +153 -153
  30. data/lib/multirepo/commands/merge-command.rb +249 -249
  31. data/lib/multirepo/commands/open-command.rb +55 -55
  32. data/lib/multirepo/commands/remove-command.rb +48 -48
  33. data/lib/multirepo/commands/uninit-command.rb +18 -18
  34. data/lib/multirepo/commands/update-command.rb +112 -112
  35. data/lib/multirepo/config.rb +16 -16
  36. data/lib/multirepo/files/config-entry.rb +39 -39
  37. data/lib/multirepo/files/config-file.rb +46 -46
  38. data/lib/multirepo/files/lock-entry.rb +29 -29
  39. data/lib/multirepo/files/lock-file.rb +56 -56
  40. data/lib/multirepo/files/meta-file.rb +41 -41
  41. data/lib/multirepo/files/tracking-file.rb +9 -9
  42. data/lib/multirepo/files/tracking-files.rb +47 -47
  43. data/lib/multirepo/git/branch.rb +32 -32
  44. data/lib/multirepo/git/change.rb +11 -11
  45. data/lib/multirepo/git/commit.rb +7 -7
  46. data/lib/multirepo/git/git-runner.rb +56 -56
  47. data/lib/multirepo/git/git.rb +10 -10
  48. data/lib/multirepo/git/ref.rb +38 -38
  49. data/lib/multirepo/git/remote.rb +17 -17
  50. data/lib/multirepo/git/repo.rb +124 -124
  51. data/lib/multirepo/hooks/post-commit-hook.rb +23 -23
  52. data/lib/multirepo/hooks/pre-commit-hook.rb +35 -35
  53. data/lib/multirepo/info.rb +5 -5
  54. data/lib/multirepo/logic/dependency.rb +6 -6
  55. data/lib/multirepo/logic/merge-descriptor.rb +95 -95
  56. data/lib/multirepo/logic/node.rb +72 -72
  57. data/lib/multirepo/logic/performer.rb +55 -55
  58. data/lib/multirepo/logic/repo-selection.rb +25 -25
  59. data/lib/multirepo/logic/revision-selection.rb +15 -15
  60. data/lib/multirepo/logic/revision-selector.rb +23 -23
  61. data/lib/multirepo/multirepo-exception.rb +6 -6
  62. data/lib/multirepo/utility/console.rb +52 -52
  63. data/lib/multirepo/utility/popen-runner.rb +27 -27
  64. data/lib/multirepo/utility/system-runner.rb +14 -14
  65. data/lib/multirepo/utility/utils.rb +99 -99
  66. data/lib/multirepo/utility/verbosity.rb +6 -6
  67. data/resources/.gitconfig +2 -2
  68. data/resources/post-commit +6 -6
  69. data/resources/pre-commit +6 -6
  70. data/spec/integration/init_spec.rb +19 -19
  71. data/spec/spec_helper.rb +89 -89
  72. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f69d3b2b70a1a87eaf12962cb4d324f62368e5e5
4
- data.tar.gz: 8ff1400b4b192b6ebd80077005f01983baf2691c
3
+ metadata.gz: ed31946049c082a1fc4cfa57e5c861e9d35c12b4
4
+ data.tar.gz: 594cc4590f22e4b415b5519b46f6a0e8e4620339
5
5
  SHA512:
6
- metadata.gz: 8003b60e23ec40811e2946958285c637aef6ccd537f884912f165a4c142fb49ab147916d653f27138aa18e714bfb9bb63c6a50a674c5cb404af5ae9db35498c5
7
- data.tar.gz: 493424da5709a8404eb17541accbb49c1d5ed1bce257407e0a1d2ee3c93c551353c9af2b150c502ee47e63ad89f680b1d40ddd2f7c5bf228344bd2dba9b1bb6b
6
+ metadata.gz: eb8056a7484abf9175b5ffd80e6ea1e7d33c5da783dccd7917ceb8aa4a83b98f2e4c73d7f39f6d6a082e76cfa7651a600b594bf7cac2a940145ba39fec6eb904
7
+ data.tar.gz: 532ffc21be392c5a53c2a2debd1249aa1a1ad05e48b366eae729da50843993b88538e388f736d16605e3348929198cebb0d6e0081fa92705eb2ff3800aa36627
data/.gitattributes CHANGED
@@ -1,2 +1,2 @@
1
- .multirepo.lock merge=ours
2
- .multirepo.meta merge=ours
1
+ .multirepo.lock merge=ours
2
+ .multirepo.meta merge=ours
data/.gitbugtraq CHANGED
@@ -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/.multirepo.meta CHANGED
@@ -1,2 +1,2 @@
1
- --- !ruby/object:MultiRepo::MetaFile
2
- version: 1.0.0.beta50
1
+ --- !ruby/object:MultiRepo::MetaFile
2
+ version: 1.0.0.beta51
data/.rspec CHANGED
@@ -1,2 +1,2 @@
1
- --color
2
- --require spec_helper
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml CHANGED
@@ -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
data/CHANGELOG.md CHANGED
@@ -1,43 +1,48 @@
1
- ## Releases
2
-
3
- To install betas run `[sudo] gem install git-multirepo --pre`
4
-
5
- ## 1.0.0.beta51
6
-
7
- - **Enhancement:** `multi merge` now shows a lock file diff if the user chooses to perform an update after the merge operation
8
- - **Enhancement:** `multi merge` now uses the same update logic as `multi update` for more robustness and uniformity
9
- - **Enhancement:** `multi update` has a new `--no-diff` option to skip lock file diffing and shows diff by default
10
- - **Bug Fix:** `multi update` did not show the lock file diff when the `--commit` flag was specified
11
- - **Internals:** `multi update`, `multi do` and `multi open` now use common repo-selection logic (--deps, --main, etc.)
12
-
13
- ## 1.0.0.beta50
14
-
15
- - **Enhancement:** `multi merge` now asks to update the main repo lock file after a merge (useful for CI scenarios)
16
- - **Enhancement:** `multi update` now asks to show a lock file diff if the main repo's lock file was modified
17
- - **Enhancement:** Checking out the main repo in floating HEAD to prevent unnecessary local branch creation in `multi merge`
18
-
19
- ## 1.0.0.beta49
20
-
21
- - **Enhancement:** Added --deps, --main and --all flags to `multi update` and update all by default
22
- - **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
23
- - **Bug Fix:** "HEAD" was stored in the lock file instead of `nil` when in floating HEAD, which caused some operations to have unexpected results
24
- - **Bug Fix:** Incorrect default behavior for `multi open` (now defaults to "all")
25
-
26
- ## 1.0.0.beta48
27
-
28
- - **New:** `multi update` now updates tracking files in subdependencies
29
- - **Enhancement:** Manual and automated code refactorings using RuboCop
30
-
31
- ## 1.0.0.beta47
32
-
33
- - **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)
34
-
35
- ## 1.0.0.beta46
36
-
37
- - **Enhancement:** Better `multi install --ci` output
38
- - **Enhancement:** Not requiring a multirepo-enabled repo in InspectCommand, else it's not very useful to inspect random repos
39
- - **Bug Fix:** Fixed exception in `multi do` when providing only the `--help` flag
40
-
41
- ## 1.0.0.beta45 and earlier
42
-
43
- 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.beta52
6
+
7
+ - **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
8
+ - **Enhancement:** Added a `--force` flag to `multi checkout`, which ignores uncommitted changes
9
+
10
+ ## 1.0.0.beta51
11
+
12
+ - **Enhancement:** `multi merge` now shows a lock file diff if the user chooses to perform an update after the merge operation
13
+ - **Enhancement:** `multi merge` now uses the same update logic as `multi update` for more robustness and uniformity
14
+ - **Enhancement:** `multi update` has a new `--no-diff` option to skip lock file diffing and shows diff by default
15
+ - **Bug Fix:** `multi update` did not show the lock file diff when the `--commit` flag was specified
16
+ - **Internals:** `multi update`, `multi do` and `multi open` now use common repo-selection logic (`--deps`, `--main`, etc.)
17
+
18
+ ## 1.0.0.beta50
19
+
20
+ - **Enhancement:** `multi merge` now asks to update the main repo lock file after a merge (useful for CI scenarios)
21
+ - **Enhancement:** `multi update` now asks to show a lock file diff if the main repo's lock file was modified
22
+ - **Enhancement:** Checking out the main repo in floating HEAD to prevent unnecessary local branch creation in `multi merge`
23
+
24
+ ## 1.0.0.beta49
25
+
26
+ - **Enhancement:** Added `--deps`, `--main` and `--all` flags to `multi update` and update all by default
27
+ - **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
28
+ - **Bug Fix:** "HEAD" was stored in the lock file instead of `nil` when in floating HEAD, which caused some operations to have unexpected results
29
+ - **Bug Fix:** Incorrect default behavior for `multi open` (now defaults to "all")
30
+
31
+ ## 1.0.0.beta48
32
+
33
+ - **New:** `multi update` now updates tracking files in subdependencies
34
+ - **Enhancement:** Manual and automated code refactorings using RuboCop
35
+
36
+ ## 1.0.0.beta47
37
+
38
+ - **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)
39
+
40
+ ## 1.0.0.beta46
41
+
42
+ - **Enhancement:** Better `multi install --ci` output
43
+ - **Enhancement:** Not requiring a multirepo-enabled repo in InspectCommand, else it's not very useful to inspect random repos
44
+ - **Bug Fix:** Fixed exception in `multi do` when providing only the `--help` flag
45
+
46
+ ## 1.0.0.beta45 and earlier
47
+
48
+ 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
data/Gemfile.lock CHANGED
@@ -1,42 +1,42 @@
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.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)