<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,8 @@
+== 1.0.4
+
+* added camping/gitweb.rb frontend
+* added a number of speed-ups
+
 == 1.0.3
 
 * Sped up most of the operations</diff>
      <filename>History.txt</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@
   - prune, fsck, pack-refs, gc, count-objects, unpack-objects
 
 * email/patch integration
-  - request-pull(email_address), git-am, git-apply
+  - request-pull(email_address), git-am, git-apply, cherry-pick
   
   
 * compatible with git 1.4</diff>
      <filename>TODO</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,8 @@ require 'fileutils'
 require 'benchmark'
 require 'rubygems'
 require 'ruby-prof'
-require_gem 'git', '1.0.3'
-#require 'lib/git'
+#require_gem 'git', '1.0.3'
+require 'lib/git'
 
 def main
   @wbare = File.expand_path(File.join('tests', 'files', 'working.git'))</diff>
      <filename>benchmark.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,9 @@ require 'lib/git'
 #
 # todo
 #   - diff/patch between any two objects
+#   - prettify : http://projects.wh.techno-weenie.net/changesets/3030
+#   - add user model (add/remove repos)
+#   - implement http-push for authenticated users 
 #
 # author : scott chacon
 #</diff>
      <filename>camping/gitweb.rb</filename>
    </modified>
    <modified>
      <diff>@@ -48,8 +48,8 @@ module Git
   # it expects not to be able to use a working directory
   # so you can't checkout stuff, commit things, etc.
   # but you can do most read operations
-  def self.bare(git_dir)
-    Base.bare(git_dir)
+  def self.bare(git_dir, options = {})
+    Base.bare(git_dir, options)
   end
     
   # open an existing git working directory</diff>
      <filename>lib/git.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,10 +7,14 @@ module Git
     @index = nil
 
     @lib = nil
+    @logger = nil
     
     # opens a bare Git Repository - no working directory options
-    def self.bare(git_dir)
-      self.new :repository =&gt; git_dir
+    def self.bare(git_dir, opts = {})
+      default = {:repository =&gt; git_dir}
+      git_options = default.merge(opts)
+      
+      self.new(git_options)
     end
     
     # opens a new Git Project from a working directory
@@ -67,6 +71,9 @@ module Git
         options[:repository] = File.join(working_dir, '.git') if !options[:repository]
         options[:index] = File.join(working_dir, '.git', 'index') if !options[:index]
       end
+      if options[:log]
+        @logger = options[:log]
+      end
       
       @working_directory = Git::WorkingDirectory.new(options[:working_directory]) if options[:working_directory]
       @repository = Git::Repository.new(options[:repository]) if options[:repository]
@@ -199,7 +206,7 @@ module Git
     # actual 'git' forked system calls.  At some point I hope to replace the Git::Lib
     # class with one that uses native methods or libgit C bindings
     def lib
-      @lib ||= Git::Lib.new(self)
+      @lib ||= Git::Lib.new(self, @logger)
     end
     
     # will run a grep for 'string' on the HEAD of the git repository</diff>
      <filename>lib/git/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,8 +11,10 @@ module Git
     @git_index_file = nil
     @git_work_dir = nil
     @path = nil
-        
-    def initialize(base = nil)
+    
+    @logger = nil
+    
+    def initialize(base = nil, logger = nil)
       if base.is_a?(Git::Base)
         @git_dir = base.repo.path
         @git_index_file = base.index.path if base.index
@@ -22,6 +24,9 @@ module Git
         @git_index_file = base[:index] 
         @git_work_dir = base[:working_directory]
       end
+      if logger
+        @logger = logger
+      end
     end
     
     def init
@@ -481,10 +486,11 @@ module Git
         out = `git #{cmd} #{opts} 2&gt;&amp;1`.chomp
       end
       
-      #puts git_cmd
-      #puts out
-      #puts
-      
+      if @logger
+        @logger.info(git_cmd)
+        @logger.debug(out)
+      end
+            
       if $?.exitstatus &gt; 0
         if $?.exitstatus == 1 &amp;&amp; out == ''
           return ''</diff>
      <filename>lib/git/lib.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c478613ee08ead9319262e325cd02040a8adac22</id>
    </parent>
  </parents>
  <author>
    <name>scott Chacon</name>
    <email>schacon@agadorsparticus.corp.reactrix.com</email>
  </author>
  <url>http://github.com/schacon/ruby-git/commit/7dc56e180632790d04a3c2dfd526e8bced746c94</url>
  <id>7dc56e180632790d04a3c2dfd526e8bced746c94</id>
  <committed-date>2007-11-19T14:32:53-08:00</committed-date>
  <authored-date>2007-11-19T14:32:53-08:00</authored-date>
  <message>added some TODO notes, the History.txt entry i forgot and a way to attach a custom logger to Git</message>
  <tree>6e5fc39a769635ade48bda42b3d934252178d655</tree>
  <committer>
    <name>scott Chacon</name>
    <email>schacon@agadorsparticus.corp.reactrix.com</email>
  </committer>
</commit>
