amp 0.5.2 → 0.5.3

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 (232) hide show
  1. data/.gitignore +12 -0
  2. data/.hgignore +3 -0
  3. data/AUTHORS +1 -1
  4. data/Manifest.txt +99 -38
  5. data/README.md +3 -3
  6. data/Rakefile +53 -18
  7. data/SCHEDULE.markdown +5 -1
  8. data/TODO.markdown +120 -149
  9. data/ampfile.rb +3 -1
  10. data/bin/amp +4 -1
  11. data/ext/amp/bz2/extconf.rb +1 -1
  12. data/ext/amp/mercurial_patch/extconf.rb +1 -1
  13. data/ext/amp/mercurial_patch/mpatch.c +4 -3
  14. data/ext/amp/priority_queue/extconf.rb +1 -1
  15. data/ext/amp/support/extconf.rb +1 -1
  16. data/ext/amp/support/support.c +1 -1
  17. data/lib/amp.rb +125 -67
  18. data/lib/amp/commands/command.rb +12 -10
  19. data/lib/amp/commands/command_support.rb +8 -1
  20. data/lib/amp/commands/commands/help.rb +2 -20
  21. data/lib/amp/commands/commands/init.rb +14 -2
  22. data/lib/amp/commands/commands/templates.rb +6 -4
  23. data/lib/amp/commands/commands/version.rb +15 -1
  24. data/lib/amp/commands/commands/workflow.rb +3 -3
  25. data/lib/amp/commands/commands/workflows/git/add.rb +3 -3
  26. data/lib/amp/commands/commands/workflows/git/copy.rb +1 -1
  27. data/lib/amp/commands/commands/workflows/git/rm.rb +4 -2
  28. data/lib/amp/commands/commands/workflows/hg/add.rb +1 -1
  29. data/lib/amp/commands/commands/workflows/hg/addremove.rb +2 -2
  30. data/lib/amp/commands/commands/workflows/hg/annotate.rb +8 -2
  31. data/lib/amp/commands/commands/workflows/hg/bisect.rb +253 -0
  32. data/lib/amp/commands/commands/workflows/hg/branch.rb +1 -1
  33. data/lib/amp/commands/commands/workflows/hg/branches.rb +3 -3
  34. data/lib/amp/commands/commands/workflows/hg/bundle.rb +3 -3
  35. data/lib/amp/commands/commands/workflows/hg/clone.rb +4 -5
  36. data/lib/amp/commands/commands/workflows/hg/commit.rb +37 -1
  37. data/lib/amp/commands/commands/workflows/hg/copy.rb +2 -1
  38. data/lib/amp/commands/commands/workflows/hg/debug/index.rb +1 -1
  39. data/lib/amp/commands/commands/workflows/hg/diff.rb +3 -8
  40. data/lib/amp/commands/commands/workflows/hg/forget.rb +5 -4
  41. data/lib/amp/commands/commands/workflows/hg/identify.rb +6 -6
  42. data/lib/amp/commands/commands/workflows/hg/import.rb +1 -1
  43. data/lib/amp/commands/commands/workflows/hg/incoming.rb +2 -2
  44. data/lib/amp/commands/commands/workflows/hg/log.rb +5 -4
  45. data/lib/amp/commands/commands/workflows/hg/merge.rb +1 -1
  46. data/lib/amp/commands/commands/workflows/hg/move.rb +5 -3
  47. data/lib/amp/commands/commands/workflows/hg/outgoing.rb +1 -1
  48. data/lib/amp/commands/commands/workflows/hg/push.rb +6 -7
  49. data/lib/amp/commands/commands/workflows/hg/remove.rb +2 -2
  50. data/lib/amp/commands/commands/workflows/hg/resolve.rb +6 -23
  51. data/lib/amp/commands/commands/workflows/hg/root.rb +1 -2
  52. data/lib/amp/commands/commands/workflows/hg/status.rb +21 -12
  53. data/lib/amp/commands/commands/workflows/hg/tag.rb +2 -2
  54. data/lib/amp/commands/commands/workflows/hg/untrack.rb +12 -0
  55. data/lib/amp/commands/commands/workflows/hg/verify.rb +13 -3
  56. data/lib/amp/commands/commands/workflows/hg/what_changed.rb +18 -0
  57. data/lib/amp/commands/dispatch.rb +12 -13
  58. data/lib/amp/dependencies/amp_support.rb +1 -1
  59. data/lib/amp/dependencies/amp_support/ruby_amp_support.rb +1 -0
  60. data/lib/amp/dependencies/maruku.rb +136 -0
  61. data/lib/amp/dependencies/maruku/attributes.rb +227 -0
  62. data/lib/amp/dependencies/maruku/defaults.rb +71 -0
  63. data/lib/amp/dependencies/maruku/errors_management.rb +92 -0
  64. data/lib/amp/dependencies/maruku/helpers.rb +260 -0
  65. data/lib/amp/dependencies/maruku/input/charsource.rb +326 -0
  66. data/lib/amp/dependencies/maruku/input/extensions.rb +69 -0
  67. data/lib/amp/dependencies/maruku/input/html_helper.rb +189 -0
  68. data/lib/amp/dependencies/maruku/input/linesource.rb +111 -0
  69. data/lib/amp/dependencies/maruku/input/parse_block.rb +615 -0
  70. data/lib/amp/dependencies/maruku/input/parse_doc.rb +234 -0
  71. data/lib/amp/dependencies/maruku/input/parse_span_better.rb +746 -0
  72. data/lib/amp/dependencies/maruku/input/rubypants.rb +225 -0
  73. data/lib/amp/dependencies/maruku/input/type_detection.rb +147 -0
  74. data/lib/amp/dependencies/maruku/input_textile2/t2_parser.rb +163 -0
  75. data/lib/amp/dependencies/maruku/maruku.rb +33 -0
  76. data/lib/amp/dependencies/maruku/output/to_ansi.rb +223 -0
  77. data/lib/amp/dependencies/maruku/output/to_html.rb +991 -0
  78. data/lib/amp/dependencies/maruku/output/to_markdown.rb +164 -0
  79. data/lib/amp/dependencies/maruku/output/to_s.rb +56 -0
  80. data/lib/amp/dependencies/maruku/string_utils.rb +191 -0
  81. data/lib/amp/dependencies/maruku/structures.rb +167 -0
  82. data/lib/amp/dependencies/maruku/structures_inspect.rb +87 -0
  83. data/lib/amp/dependencies/maruku/structures_iterators.rb +61 -0
  84. data/lib/amp/dependencies/maruku/textile2.rb +1 -0
  85. data/lib/amp/dependencies/maruku/toc.rb +199 -0
  86. data/lib/amp/dependencies/maruku/usage/example1.rb +33 -0
  87. data/lib/amp/dependencies/maruku/version.rb +40 -0
  88. data/lib/amp/dependencies/priority_queue.rb +2 -1
  89. data/lib/amp/dependencies/python_config.rb +2 -1
  90. data/lib/amp/graphs/ancestor.rb +2 -1
  91. data/lib/amp/graphs/copies.rb +236 -233
  92. data/lib/amp/help/entries/__default__.erb +31 -0
  93. data/lib/amp/help/entries/commands.erb +6 -0
  94. data/lib/amp/help/entries/mdtest.md +35 -0
  95. data/lib/amp/help/entries/silly +3 -0
  96. data/lib/amp/help/help.rb +288 -0
  97. data/lib/amp/profiling_hacks.rb +5 -3
  98. data/lib/amp/repository/abstract/abstract_changeset.rb +97 -0
  99. data/lib/amp/repository/abstract/abstract_local_repo.rb +181 -0
  100. data/lib/amp/repository/abstract/abstract_staging_area.rb +180 -0
  101. data/lib/amp/repository/abstract/abstract_versioned_file.rb +100 -0
  102. data/lib/amp/repository/abstract/common_methods/changeset.rb +75 -0
  103. data/lib/amp/repository/abstract/common_methods/local_repo.rb +277 -0
  104. data/lib/amp/repository/abstract/common_methods/staging_area.rb +233 -0
  105. data/lib/amp/repository/abstract/common_methods/versioned_file.rb +71 -0
  106. data/lib/amp/repository/generic_repo_picker.rb +78 -0
  107. data/lib/amp/repository/git/repo_format/changeset.rb +336 -0
  108. data/lib/amp/repository/git/repo_format/staging_area.rb +192 -0
  109. data/lib/amp/repository/git/repo_format/versioned_file.rb +119 -0
  110. data/lib/amp/repository/git/repositories/local_repository.rb +164 -0
  111. data/lib/amp/repository/git/repository.rb +41 -0
  112. data/lib/amp/repository/mercurial/encoding/mercurial_diff.rb +382 -0
  113. data/lib/amp/repository/mercurial/encoding/mercurial_patch.rb +1 -0
  114. data/lib/amp/repository/mercurial/encoding/patch.rb +294 -0
  115. data/lib/amp/repository/mercurial/encoding/pure_ruby/ruby_mercurial_patch.rb +124 -0
  116. data/lib/amp/repository/mercurial/merging/merge_ui.rb +327 -0
  117. data/lib/amp/repository/mercurial/merging/simple_merge.rb +452 -0
  118. data/lib/amp/repository/mercurial/repo_format/branch_manager.rb +266 -0
  119. data/lib/amp/repository/mercurial/repo_format/changeset.rb +768 -0
  120. data/lib/amp/repository/mercurial/repo_format/dir_state.rb +716 -0
  121. data/lib/amp/repository/mercurial/repo_format/journal.rb +218 -0
  122. data/lib/amp/repository/mercurial/repo_format/lock.rb +210 -0
  123. data/lib/amp/repository/mercurial/repo_format/merge_state.rb +228 -0
  124. data/lib/amp/repository/mercurial/repo_format/staging_area.rb +367 -0
  125. data/lib/amp/repository/mercurial/repo_format/store.rb +487 -0
  126. data/lib/amp/repository/mercurial/repo_format/tag_manager.rb +322 -0
  127. data/lib/amp/repository/mercurial/repo_format/updatable.rb +543 -0
  128. data/lib/amp/repository/mercurial/repo_format/updater.rb +848 -0
  129. data/lib/amp/repository/mercurial/repo_format/verification.rb +433 -0
  130. data/lib/amp/repository/mercurial/repositories/bundle_repository.rb +216 -0
  131. data/lib/amp/repository/mercurial/repositories/http_repository.rb +386 -0
  132. data/lib/amp/repository/mercurial/repositories/local_repository.rb +2034 -0
  133. data/lib/amp/repository/mercurial/repository.rb +119 -0
  134. data/lib/amp/repository/mercurial/revlogs/bundle_revlogs.rb +249 -0
  135. data/lib/amp/repository/mercurial/revlogs/changegroup.rb +217 -0
  136. data/lib/amp/repository/mercurial/revlogs/changelog.rb +339 -0
  137. data/lib/amp/repository/mercurial/revlogs/file_log.rb +152 -0
  138. data/lib/amp/repository/mercurial/revlogs/index.rb +500 -0
  139. data/lib/amp/repository/mercurial/revlogs/manifest.rb +201 -0
  140. data/lib/amp/repository/mercurial/revlogs/node.rb +20 -0
  141. data/lib/amp/repository/mercurial/revlogs/revlog.rb +1026 -0
  142. data/lib/amp/repository/mercurial/revlogs/revlog_support.rb +129 -0
  143. data/lib/amp/repository/mercurial/revlogs/versioned_file.rb +597 -0
  144. data/lib/amp/repository/repository.rb +11 -88
  145. data/lib/amp/server/extension/amp_extension.rb +3 -3
  146. data/lib/amp/server/fancy_http_server.rb +1 -1
  147. data/lib/amp/server/fancy_views/_browser.haml +1 -1
  148. data/lib/amp/server/fancy_views/_diff_file.haml +1 -8
  149. data/lib/amp/server/fancy_views/changeset.haml +2 -2
  150. data/lib/amp/server/fancy_views/file.haml +1 -1
  151. data/lib/amp/server/fancy_views/file_diff.haml +1 -1
  152. data/lib/amp/support/amp_ui.rb +13 -29
  153. data/lib/amp/support/generator.rb +1 -1
  154. data/lib/amp/support/loaders.rb +1 -2
  155. data/lib/amp/support/logger.rb +10 -16
  156. data/lib/amp/support/match.rb +18 -4
  157. data/lib/amp/support/mercurial/ignore.rb +151 -0
  158. data/lib/amp/support/openers.rb +8 -3
  159. data/lib/amp/support/support.rb +91 -46
  160. data/lib/amp/templates/{blank.commit.erb → mercurial/blank.commit.erb} +0 -0
  161. data/lib/amp/templates/{blank.log.erb → mercurial/blank.log.erb} +0 -0
  162. data/lib/amp/templates/{default.commit.erb → mercurial/default.commit.erb} +0 -0
  163. data/lib/amp/templates/{default.log.erb → mercurial/default.log.erb} +0 -0
  164. data/lib/amp/templates/template.rb +18 -18
  165. data/man/amp.1 +51 -0
  166. data/site/src/about/commands.haml +1 -1
  167. data/site/src/css/amp.css +1 -1
  168. data/site/src/index.haml +3 -3
  169. data/tasks/man.rake +39 -0
  170. data/tasks/stats.rake +1 -10
  171. data/tasks/yard.rake +1 -50
  172. data/test/dirstate_tests/test_dir_state.rb +10 -8
  173. data/test/functional_tests/annotate.out +31 -0
  174. data/test/functional_tests/test_functional.rb +155 -63
  175. data/test/localrepo_tests/ampfile.rb +12 -0
  176. data/test/localrepo_tests/test_local_repo.rb +56 -57
  177. data/test/manifest_tests/test_manifest.rb +3 -5
  178. data/test/merge_tests/test_merge.rb +3 -3
  179. data/test/revlog_tests/test_revlog.rb +14 -6
  180. data/test/store_tests/test_fncache_store.rb +19 -19
  181. data/test/test_19_compatibility.rb +46 -0
  182. data/test/test_base85.rb +2 -2
  183. data/test/test_bdiff.rb +2 -2
  184. data/test/test_changegroup.rb +59 -0
  185. data/test/test_commands.rb +2 -2
  186. data/test/test_difflib.rb +2 -2
  187. data/test/test_generator.rb +34 -0
  188. data/test/test_ignore.rb +203 -0
  189. data/test/test_journal.rb +18 -13
  190. data/test/test_match.rb +2 -2
  191. data/test/test_mdiff.rb +3 -3
  192. data/test/test_mpatch.rb +3 -3
  193. data/test/test_multi_io.rb +40 -0
  194. data/test/test_support.rb +18 -2
  195. data/test/test_templates.rb +38 -0
  196. data/test/test_ui.rb +79 -0
  197. data/test/testutilities.rb +56 -0
  198. metadata +168 -49
  199. data/ext/amp/bz2/mkmf.log +0 -38
  200. data/lib/amp/encoding/mercurial_diff.rb +0 -378
  201. data/lib/amp/encoding/mercurial_patch.rb +0 -1
  202. data/lib/amp/encoding/patch.rb +0 -292
  203. data/lib/amp/encoding/pure_ruby/ruby_mercurial_patch.rb +0 -123
  204. data/lib/amp/merges/merge_state.rb +0 -164
  205. data/lib/amp/merges/merge_ui.rb +0 -322
  206. data/lib/amp/merges/simple_merge.rb +0 -450
  207. data/lib/amp/repository/branch_manager.rb +0 -234
  208. data/lib/amp/repository/dir_state.rb +0 -950
  209. data/lib/amp/repository/journal.rb +0 -203
  210. data/lib/amp/repository/lock.rb +0 -207
  211. data/lib/amp/repository/repositories/bundle_repository.rb +0 -214
  212. data/lib/amp/repository/repositories/http_repository.rb +0 -377
  213. data/lib/amp/repository/repositories/local_repository.rb +0 -2661
  214. data/lib/amp/repository/store.rb +0 -485
  215. data/lib/amp/repository/tag_manager.rb +0 -319
  216. data/lib/amp/repository/updatable.rb +0 -532
  217. data/lib/amp/repository/verification.rb +0 -431
  218. data/lib/amp/repository/versioned_file.rb +0 -475
  219. data/lib/amp/revlogs/bundle_revlogs.rb +0 -246
  220. data/lib/amp/revlogs/changegroup.rb +0 -217
  221. data/lib/amp/revlogs/changelog.rb +0 -338
  222. data/lib/amp/revlogs/changeset.rb +0 -521
  223. data/lib/amp/revlogs/file_log.rb +0 -165
  224. data/lib/amp/revlogs/index.rb +0 -493
  225. data/lib/amp/revlogs/manifest.rb +0 -195
  226. data/lib/amp/revlogs/node.rb +0 -18
  227. data/lib/amp/revlogs/revlog.rb +0 -1045
  228. data/lib/amp/revlogs/revlog_support.rb +0 -126
  229. data/lib/amp/support/ignore.rb +0 -144
  230. data/site/Rakefile +0 -38
  231. data/test/test_amp.rb +0 -9
  232. data/test/test_helper.rb +0 -15
data/ampfile.rb CHANGED
@@ -17,7 +17,7 @@ Amp::Command.new("silly") do |c|
17
17
  end
18
18
 
19
19
  # command :push do |c|
20
- # c.before { system "rake test" }
20
+ # c.before { system "hg verify" }
21
21
  # end
22
22
 
23
23
  template :silly, <<-EOF
@@ -39,6 +39,8 @@ command "stats" do |c|
39
39
  end
40
40
  end
41
41
 
42
+ # bisect_command
43
+
42
44
  namespace :docs do
43
45
 
44
46
  command "gen" do |c|
data/bin/amp CHANGED
@@ -27,4 +27,7 @@ end
27
27
 
28
28
  require File.join(File.dirname(follow_link(__FILE__)), "..", "lib", "amp")
29
29
 
30
- Amp::Dispatch.run
30
+ result = Amp::Dispatch.run
31
+
32
+ # ensure status makes it out
33
+ exit(result ? 0 : 1)
@@ -19,7 +19,7 @@ end
19
19
 
20
20
  dir_config('bz2')
21
21
  if !have_library('bz2', 'BZ2_bzWriteOpen')
22
- raise "libz2 not found"
22
+ raise "bzip2 headers not found. If you are on Linux, install the libbz2-dev package. If you are on Mac OS X, you should not see this error."
23
23
  end
24
24
 
25
25
  if enable_config("shared", true)
@@ -2,4 +2,4 @@ require 'mkmf'
2
2
  if RUBY_VERSION =~ /1.9/ then
3
3
  $CPPFLAGS += " -DRUBY_19"
4
4
  end
5
- create_makefile("MercurialPatch")
5
+ create_makefile("amp/CMercurialPatch")
@@ -33,7 +33,7 @@ static uint32_t ntohl(uint32_t x)
33
33
  #endif
34
34
 
35
35
 
36
- VALUE rb_mAmp, rb_mDiffs, rb_mMercurialPatch;
36
+ VALUE rb_mAmp, rb_mMercurial, rb_mDiffs, rb_mMercurialPatch;
37
37
 
38
38
 
39
39
  struct frag {
@@ -394,11 +394,12 @@ static VALUE amp_mpatch_patched_size(VALUE self, VALUE orig_r, VALUE bin_r)
394
394
  }
395
395
 
396
396
 
397
- void Init_MercurialPatch() {
397
+ void Init_CMercurialPatch() {
398
398
 
399
399
  rb_mAmp = rb_define_module("Amp");
400
400
  rb_mDiffs = rb_define_module_under(rb_mAmp, "Diffs");
401
- rb_mMercurialPatch = rb_define_module_under(rb_mDiffs, "MercurialPatch");
401
+ rb_mMercurial = rb_define_module_under(rb_mDiffs, "Mercurial");
402
+ rb_mMercurialPatch = rb_define_module_under(rb_mMercurial, "MercurialPatch");
402
403
 
403
404
  rb_define_singleton_method(rb_mMercurialPatch, "patched_size", amp_mpatch_patched_size, 2);
404
405
  rb_define_singleton_method(rb_mMercurialPatch, "apply_patches", amp_mpatch_apply_patches, 2);
@@ -2,4 +2,4 @@ require 'mkmf'
2
2
  if RUBY_VERSION =~ /1.9/ then
3
3
  $CPPFLAGS += " -DRUBY_19"
4
4
  end
5
- create_makefile("CPriorityQueue")
5
+ create_makefile("amp/CPriorityQueue")
@@ -2,4 +2,4 @@ require 'mkmf'
2
2
  if RUBY_VERSION =~ /1.9/ then
3
3
  $CPPFLAGS += " -DRUBY_19"
4
4
  end
5
- create_makefile("Support")
5
+ create_makefile("amp/CSupport")
@@ -221,7 +221,7 @@ static VALUE amp_string_unhexlify(VALUE self) {
221
221
  * this function is run. All we need to do is add the new methods, and look up the
222
222
  * symbols for to_dirstate_symbol.
223
223
  */
224
- void Init_Support() {
224
+ void Init_CSupport() {
225
225
  if (little_endian == -1) little_endian = (ntohl(8) != 8);
226
226
 
227
227
  // methods added to String class
data/lib/amp.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  module Amp; end
2
2
  # The root directory of this application
3
3
  Amp::CODE_ROOT = File.expand_path File.dirname(__FILE__)
4
- $: << Amp::CODE_ROOT # now we don't need to do `require "#{curdir}..."
5
-
4
+ Amp::EXT_ROOT = File.expand_path File.join(File.dirname(__FILE__), "..", "ext")
5
+ $:.unshift Amp::CODE_ROOT # now we don't need to do `require "#{curdir}..."
6
+ $:.unshift Amp::EXT_ROOT
6
7
  # Timing variable
7
8
  $start ||= Time.now
8
9
  # Should we display anything?
@@ -12,15 +13,18 @@ $USE_RUBY ||= false
12
13
  # Are we a command-line app? Default to no.
13
14
  $cl ||= false
14
15
 
16
+
17
+
15
18
  require "amp/support/loaders.rb"
16
19
 
20
+ need { 'amp/profiling_hacks' }
21
+
17
22
  #require 'profile'
18
23
  require 'fileutils'
19
24
  require 'stringio'
20
25
 
21
26
  local_start = Time.now
22
27
 
23
-
24
28
  ###############
25
29
  # The Amp Magic
26
30
  ###############
@@ -30,87 +34,138 @@ module Amp
30
34
  autoload :Generator, "amp/support/generator.rb"
31
35
  autoload :Opener, "amp/support/openers.rb"
32
36
  autoload :Match, "amp/support/match.rb"
33
- autoload :Ignore, "amp/support/ignore.rb"
34
37
  autoload :AmpConfig, "amp/support/amp_config.rb"
35
38
  autoload :UI, "amp/support/amp_ui.rb"
36
-
37
- autoload :Journal, "amp/repository/journal.rb"
38
- autoload :VersionedFile, "amp/repository/versioned_file.rb"
39
- autoload :VersionedWorkingFile, "amp/repository/versioned_file.rb"
40
39
 
41
- autoload :Revlog, "amp/revlogs/revlog.rb"
42
- autoload :Manifest, "amp/revlogs/manifest.rb"
43
- autoload :FileLog, "amp/revlogs/file_log.rb"
44
- autoload :Changeset, "amp/revlogs/changeset.rb"
45
- autoload :WorkingDirectoryChangeset, "amp/revlogs/changeset.rb"
46
- autoload :ChangeGroup, "amp/revlogs/changegroup.rb"
47
- autoload :ChangeLog, "amp/revlogs/changelog.rb"
40
+ module Git
41
+ autoload :Changeset, "amp/repository/git/repo_format/changeset.rb"
42
+ autoload :WorkingDirectoryChangeset, "amp/repository/git/repo_format/changeset.rb"
43
+ autoload :VersionedFile, "amp/repository/git/repo_format/versioned_file.rb"
44
+ autoload :VersionedWorkingFile, "amp/repository/git/repo_format/versioned_file.rb"
45
+ end
46
+
47
+ module Mercurial
48
+ autoload :Ignore, "amp/support/mercurial/ignore.rb"
49
+
50
+ autoload :Journal, "amp/repository/mercurial/repo_format/journal.rb"
51
+ autoload :VersionedFile, "amp/repository/mercurial/revlogs/versioned_file.rb"
52
+ autoload :VersionedWorkingFile, "amp/repository/mercurial/revlogs/versioned_file.rb"
53
+
54
+ autoload :Revlog, "amp/repository/mercurial/revlogs/revlog.rb"
55
+ autoload :Manifest, "amp/repository/mercurial/revlogs/manifest.rb"
56
+ autoload :FileLog, "amp/repository/mercurial/revlogs/file_log.rb"
57
+ autoload :ChangeLog, "amp/repository/mercurial/revlogs/changelog.rb"
58
+ autoload :ChangeGroup, "amp/repository/mercurial/revlogs/changegroup.rb"
59
+ autoload :Changeset, "amp/repository/mercurial/repo_format/changeset.rb"
60
+ autoload :WorkingDirectoryChangeset, "amp/repository/mercurial/repo_format/changeset.rb"
61
+ end
48
62
 
49
63
  module Bundles
50
- autoload :BundleChangeLog, "amp/revlogs/bundle_revlogs.rb"
51
- autoload :BundleFileLog, "amp/revlogs/bundle_revlogs.rb"
52
- autoload :BundleManifest, "amp/revlogs/bundle_revlogs.rb"
53
- autoload :BundleRevlog, "amp/revlogs/bundle_revlogs.rb"
54
- end
55
-
56
- module Encoding
64
+ module Mercurial
65
+ autoload :BundleChangeLog, "amp/repository/mercurial/revlogs/bundle_revlogs.rb"
66
+ autoload :BundleFileLog, "amp/repository/mercurial/revlogs/bundle_revlogs.rb"
67
+ autoload :BundleManifest, "amp/repository/mercurial/revlogs/bundle_revlogs.rb"
68
+ autoload :BundleRevlog, "amp/repository/mercurial/revlogs/bundle_revlogs.rb"
69
+ end
70
+ end
71
+
72
+ module Encoding
57
73
  autoload :Base85, "amp/encoding/base85.rb"
58
74
  end
59
75
 
60
- module Diffs
76
+ module Diffs
61
77
  autoload :BinaryDiff, "amp/encoding/binary_diff.rb"
62
- autoload :MercurialDiff, "amp/encoding/mercurial_diff.rb"
63
- autoload :MercurialPatch, "amp/encoding/mercurial_patch.rb"
64
78
  autoload :SequenceMatcher, "amp/encoding/difflib.rb"
79
+
80
+ module Mercurial
81
+ autoload :MercurialDiff, "amp/repository/mercurial/encoding/mercurial_diff.rb"
82
+ autoload :MercurialPatch, "amp/repository/mercurial/encoding/mercurial_patch.rb"
83
+ end
65
84
  end
66
85
 
67
86
  module Graphs
68
- autoload :AncestorCalculator, "amp/graphs/ancestor.rb"
69
- autoload :CopyCalculator, "amp/graphs/copies.rb"
87
+ autoload :AncestorCalculator, "amp/graphs/ancestor.rb"
88
+ module Mercurial
89
+ autoload :CopyCalculator, "amp/graphs/copies.rb"
90
+ end
70
91
  end
71
-
72
- module Merges
73
- autoload :MergeState, "amp/merges/merge_state.rb"
74
- autoload :MergeUI, "amp/merges/merge_ui.rb"
75
- autoload :ThreeWayMerger, "amp/merges/simple_merge.rb"
92
+
93
+ module Help
94
+ autoload :HelpUI, "amp/help/help.rb"
95
+ autoload :HelpEntry, "amp/help/help.rb"
96
+ autoload :HelpRegistry, "amp/help/help.rb"
97
+ autoload :CommandHelpEntry, "amp/help/help.rb"
98
+ autoload :FileHelpEntry, "amp/help/help.rb"
99
+ end
100
+
101
+ module Merges
102
+ module Mercurial
103
+ autoload :MergeState, "amp/repository/mercurial/repo_format/merge_state.rb"
104
+ autoload :MergeUI, "amp/repository/mercurial/merging/merge_ui.rb"
105
+ autoload :ThreeWayMerger, "amp/repository/mercurial/merging/simple_merge.rb"
106
+ end
76
107
  end
77
108
 
78
109
  module Repositories
79
- autoload :BranchManager, "amp/repository/branch_manager.rb"
80
- autoload :BundleRepository, "amp/repository/repositories/bundle_repository.rb"
81
- autoload :DirState, "amp/repository/dir_state.rb"
82
- autoload :HTTPRepository, "amp/repository/repositories/http_repository.rb"
83
- autoload :HTTPSRepository, "amp/repository/repositories/http_repository.rb"
84
- autoload :LocalRepository, "amp/repository/repositories/local_repository.rb"
85
- autoload :Lock, "amp/repository/lock.rb"
86
- autoload :Stores, "amp/repository/store.rb"
87
- autoload :TagManager, "amp/repository/tag_manager.rb"
88
- autoload :Updatable, "amp/repository/updatable.rb"
89
- autoload :Verification, "amp/repository/verification.rb"
90
- end
91
-
92
- module RevlogSupport
93
- autoload :ChangeGroup, "amp/revlogs/changegroup.rb"
94
- autoload :Index, "amp/revlogs/index.rb"
95
- autoload :IndexInlineNG, "amp/revlogs/index.rb"
96
- autoload :IndexVersion0, "amp/revlogs/index.rb"
97
- autoload :IndexVersionNG, "amp/revlogs/index.rb"
98
- autoload :Node, "amp/revlogs/node.rb"
99
- autoload :Support, "amp/revlogs/revlog_support.rb"
110
+ autoload :GenericRepoPicker, "amp/repository/generic_repo_picker.rb"
111
+ autoload :AbstractLocalRepository, "amp/repository/abstract/abstract_local_repo.rb"
112
+ autoload :AbstractStagingArea, "amp/repository/abstract/abstract_staging_area.rb"
113
+ autoload :AbstractChangeset, "amp/repository/abstract/abstract_changeset.rb"
114
+ autoload :AbstractVersionedFile, "amp/repository/abstract/abstract_versioned_file.rb"
115
+ autoload :CommonChangesetMethods, "amp/repository/abstract/common_methods/changeset.rb"
116
+ autoload :CommonLocalRepoMethods, "amp/repository/abstract/common_methods/local_repo.rb"
117
+ autoload :CommonStagingAreaMethods, "amp/repository/abstract/common_methods/staging_area.rb"
118
+ autoload :CommonChangesetMethods, "amp/repository/abstract/common_methods/changeset.rb"
119
+ autoload :CommonVersionedFileMethods,"amp/repository/abstract/common_methods/versioned_file.rb"
120
+
121
+ module Git
122
+ autoload :LocalRepository, "amp/repository/git/repositories/local_repository.rb"
123
+ autoload :GitPicker, "amp/repository/git/repository.rb"
124
+ autoload :StagingArea, "amp/repository/git/repo_format/staging_area.rb"
125
+ end
126
+
127
+ module Mercurial
128
+ autoload :BranchManager, "amp/repository/mercurial/repo_format/branch_manager.rb"
129
+ autoload :BundleRepository, "amp/repository/mercurial/repositories/bundle_repository.rb"
130
+ autoload :DirState, "amp/repository/mercurial/repo_format/dir_state.rb"
131
+ autoload :HTTPRepository, "amp/repository/mercurial/repositories/http_repository.rb"
132
+ autoload :HTTPSRepository, "amp/repository/mercurial/repositories/http_repository.rb"
133
+ autoload :LocalRepository, "amp/repository/mercurial/repositories/local_repository.rb"
134
+ autoload :Lock, "amp/repository/mercurial/repo_format/lock.rb"
135
+ autoload :MercurialPicker, "amp/repository/mercurial/repository.rb"
136
+ autoload :Repository, "amp/repository/mercurial/repository.rb"
137
+ autoload :StagingArea, "amp/repository/mercurial/repo_format/staging_area.rb"
138
+ autoload :Stores, "amp/repository/mercurial/repo_format/store.rb"
139
+ autoload :TagManager, "amp/repository/mercurial/repo_format/tag_manager.rb"
140
+ autoload :Updatable, "amp/repository/mercurial/repo_format/updatable.rb"
141
+ autoload :Verification, "amp/repository/mercurial/repo_format/verification.rb"
142
+ end
100
143
  end
101
144
 
102
- module Servers
103
- autoload :FancyHTTPServer, "amp/server/fancy_http_server.rb"
104
- autoload :HTTPServer, "amp/server/http_server.rb"
105
- autoload :HTTPAuthorizedServer, "amp/server/http_server.rb"
106
- autoload :RepoUserManagement, "amp/server/repo_user_management.rb"
107
- autoload :User, "amp/server/amp_user.rb"
145
+ module Mercurial
146
+ module RevlogSupport
147
+ autoload :ChangeGroup, "amp/repository/mercurial/revlogs/changegroup.rb"
148
+ autoload :Index, "amp/repository/mercurial/revlogs/index.rb"
149
+ autoload :IndexInlineNG, "amp/repository/mercurial/revlogs/index.rb"
150
+ autoload :IndexVersion0, "amp/repository/mercurial/revlogs/index.rb"
151
+ autoload :IndexVersionNG, "amp/repository/mercurial/revlogs/index.rb"
152
+ autoload :Node, "amp/repository/mercurial/revlogs/node.rb"
153
+ autoload :Support, "amp/repository/mercurial/revlogs/revlog_support.rb"
154
+ end
108
155
  end
109
156
 
110
- module Support
111
- autoload :Logger, "amp/support/logger.rb"
112
- autoload :MultiIO, "amp/support/multi_io.rb"
113
- autoload :Template, "amp/templates/template.rb"
157
+ module Servers
158
+ autoload :FancyHTTPServer, "amp/server/fancy_http_server.rb"
159
+ autoload :HTTPServer, "amp/server/http_server.rb"
160
+ autoload :HTTPAuthorizedServer, "amp/server/http_server.rb"
161
+ autoload :RepoUserManagement, "amp/server/repo_user_management.rb"
162
+ autoload :User, "amp/server/amp_user.rb"
163
+ end
164
+
165
+ module Support
166
+ autoload :Logger, "amp/support/logger.rb"
167
+ autoload :MultiIO, "amp/support/multi_io.rb"
168
+ autoload :Template, "amp/templates/template.rb"
114
169
  end
115
170
  end
116
171
 
@@ -128,6 +183,7 @@ end
128
183
  autoload :Archive, "amp/dependencies/minitar.rb"
129
184
  autoload :Zip, "amp/dependencies/zip/zip.rb"
130
185
  autoload :PriorityQueue, "amp/dependencies/priority_queue.rb"
186
+ autoload :Maruku, "amp/dependencies/maruku.rb"
131
187
 
132
188
  #############################
133
189
  # Files we need to just *run*
@@ -138,22 +194,24 @@ require "amp/dependencies/amp_support.rb"
138
194
  require "amp/support/ruby_19_compatibility.rb"
139
195
  require "amp/support/support.rb"
140
196
  require "amp/templates/template.rb"
197
+ require "amp/repository/mercurial/repository.rb" # we're just loading in
198
+ require 'amp/repository/git/repository.rb' # all of the base repositories
141
199
 
142
200
  if $cl # if it's a command line app
143
201
  include Amp::KernelMethods
144
202
  require "amp/commands/command.rb"
145
203
  require_dir { "amp/commands/*.rb" }
146
204
  require_dir { "amp/commands/commands/*.rb" }
147
-
148
205
  else
149
206
  # it's not a command line app
150
207
  require 'amp/support/docs.rb' # live documentation access
151
208
  end
209
+
152
210
  require "amp/repository/repository.rb"
153
211
 
154
212
  module Amp
155
- VERSION = '0.5.2'
156
- VERSION_TITLE = "John Locke"
213
+ VERSION = '0.5.3'
214
+ VERSION_TITLE = "John Locke" # the next one should totally be "Suomalaisen Susijengi"
157
215
 
158
216
  def self.new_irb_session(bndng)
159
217
  require 'irb'
@@ -197,4 +255,4 @@ if ENV["TESTING"] == "true"
197
255
  end
198
256
 
199
257
  # Benchmarking stuff
200
- #need { 'amp/profiling_hacks' }
258
+
@@ -147,8 +147,8 @@ module Amp
147
147
  attr_accessor :name
148
148
  # Short, 1-line description of the command
149
149
  attr_accessor :description
150
- # The Trollop parser
151
- attr_accessor :parser
150
+ # The Trollop parser.
151
+ attr_reader :parser
152
152
 
153
153
  ##
154
154
  # Creates a command in the Amp system. Simply instantiating a new
@@ -177,7 +177,7 @@ module Amp
177
177
  full_name = (self.class.current_namespaces + [name]).join(":")
178
178
  name = full_name.to_sym
179
179
  if self.class.all_commands[name]
180
- yield self.class.all_commands[name] if block_given?
180
+ yield self.class.all_commands[name] if block_given?
181
181
  return self.class.all_commands[name]
182
182
  end
183
183
 
@@ -190,9 +190,10 @@ module Amp
190
190
 
191
191
  @workflows = []
192
192
  @synonyms = []
193
- yield(self) if block_given?
193
+ yield self if block_given?
194
194
  workflow :all if @workflows.empty?
195
195
  @options += GLOBAL_OPTIONS
196
+ Amp::Help::CommandHelpEntry.new(full_name, self)
196
197
  end
197
198
 
198
199
  ##
@@ -225,10 +226,10 @@ module Amp
225
226
  # default :"no-color", true
226
227
  # end
227
228
  # @param [Symbol, #to_sym] opt the option to modify. Can be symbol or string.
228
- # @param value the new default value for the option
229
+ # @param [Object] value the new default value for the option
229
230
  def default(opt, value)
230
231
  opt = opt.to_sym
231
- the_opt = @options.select {|o| o[:name] == opt}.first
232
+ the_opt = @options.find {|o| o[:name] == opt }
232
233
  if the_opt
233
234
  the_opt[:options][:default] = value
234
235
  end
@@ -307,7 +308,8 @@ module Amp
307
308
 
308
309
  @before << block if block
309
310
  @before
310
- end
311
+ end
312
+
311
313
  ##
312
314
  # This returns the list of actions to run after the command, in order (first
313
315
  # ones are run first). You can modify this array in any way you choose, and
@@ -456,14 +458,14 @@ module Amp
456
458
  # @return [Amp::Command] the command being run
457
459
  def run(options={}, args=[])
458
460
  # run the before commands
459
- @before.each {|cmd| result = cmd.run options, args; return if !result || $break }
461
+ @before.each {|cmd| result = cmd.run options, args; return false if !result || $break }
460
462
 
461
463
  @code[options, args] # and of course the actual command...
462
464
 
463
465
  # top it off with the after commands
464
- @after.each {|cmd| result = cmd.run options, args; return if !result || $break }
466
+ @after.each {|cmd| result = cmd.run options, args; return false if !result || $break }
465
467
 
466
- self
468
+ true
467
469
  end
468
470
 
469
471
  NO_REPO_ALLOWED = {}
@@ -47,7 +47,7 @@ module Amp
47
47
  def revision_pair(repo, revisions)
48
48
  #revisions = [revisions] unless revisions.is_a?(Array)
49
49
  if !revisions || revisions.empty?
50
- return repo.dirstate.parents.first, nil
50
+ return repo.parents.first, nil
51
51
  end
52
52
  stop = nil
53
53
 
@@ -133,5 +133,12 @@ module Amp
133
133
  message
134
134
  end
135
135
 
136
+ def parse_revision_range(input)
137
+ match = input.match /(\d+)(?:#{REV_SEP}(\d*))?/
138
+ fin = match[2]
139
+ fin &&= fin.empty? ? nil : fin.to_i
140
+ [match[1].to_i, fin]
141
+ end
142
+
136
143
  end
137
144
  end