ruby-git-1.6.0/0000755000175000017500000000000013615571573013507 5ustar terceiroterceiroruby-git-1.6.0/.github/0000755000175000017500000000000013615571573015047 5ustar terceiroterceiroruby-git-1.6.0/.github/stale.yml0000644000175000017500000000135213615571573016703 0ustar terceiroterceiro# Probot: Stale # https://github.com/probot/stale # Number of days of inactivity before an issue becomes stale daysUntilStale: 60 # Number of days of inactivity before a stale issue is closed # Set to false to disable. If disabled, issues still need to be closed # manually, but will remain marked as stale. daysUntilClose: false # Issues with these labels will never be considered stale exemptLabels: - pinned - security # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > A friendly reminder that this issue had no activity for 60 days. # Comment to post when closing a stale issue. Set to `false` to disable closeComment: false ruby-git-1.6.0/PULL_REQUEST_TEMPLATE.md0000644000175000017500000000055313615571573017313 0ustar terceiroterceiro### Your checklist for this pull request 🚨Please review the [guidelines for contributing](../CONTRIBUTING.md) to this repository. - [ ] Ensure all commits include DCO sign-off. - [ ] Ensure that your contributions pass unit testing. - [ ] Ensure that your contributions contain documentation if applicable. ### Description Please describe your pull request. ruby-git-1.6.0/LICENSE0000644000175000017500000000206113615571573014513 0ustar terceiroterceiroThe MIT License Copyright (c) 2008 Scott Chacon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ruby-git-1.6.0/RELEASING.md0000644000175000017500000000517613615571573015353 0ustar terceiroterceiro# How to release a new git.gem Releasing a new version of the `git` gem requires these steps: * [Prepare the release](#prepare-the-release) * [Create a GitHub release](#create-a-github-release) * [Build and release the gem](#build-and-release-the-gem) These instructions use an example where the current release version is `1.5.0` and the new release version to be created is `1.6.0.pre1`. ## Prepare the release From a fork of ruby-git, create a PR containing changes to (1) bump the version number, (2) update the CHANGELOG.md, and (3) tag the release. * Bump the version number in lib/git/version.rb following [Semantic Versioning](https://semver.org) guidelines * Add a link in CHANGELOG.md to the release tag which will be created later in this guide * Create a new tag using [git-extras](https://github.com/tj/git-extras/blob/master/Commands.md#git-release) `git release` command * For example: `git release v1.6.0.pre1` * These should be the only changes in the PR * An example of these changes for `v1.6.0.pre1` can be found in [PR #435](https://github.com/ruby-git/ruby-git/pull/435) * Get the PR reviewed, approved and merged to master. ## Create a GitHub release On [the ruby-git releases page](https://github.com/ruby-git/ruby-git/releases), select `Draft a new release` * Select the tag corresponding to the version being released `v1.6.0.pre1` * The Target should be `master` * For the release description, use the output of [changelog-rs](https://github.com/perlun/changelog-rs) * Since the release has not been created yet, you will need to supply `changeling-rs` with the current release tag and the tag the new release is being created from * For example: `changelog-rs . v1.5.0 v1.6.0.pre1` * Copy the output, omitting the tag header `## v1.6.0.pre1` and paste into the release description * The release description can be edited later if needed * Select the appropriate value for `This is a pre-release` * Since `v1.6.0.pre1` is a pre-release, check `This is a pre-release` ## Build and release the gem Clone [ruby-git/ruby-git](https://github.com/ruby-git/ruby-git) directly (not a fork) and ensure your local working copy is on the master branch * Verify that you are not on a fork with the command `git remote -v` * Verify that the version number is correct by running `rake -T` and inspecting the output for the `release[remote]` task Build the git gem and push it to rubygems.org with the command `rake release` * Ensure that your `gem sources list` includes `https://rubygems.org` (in my case, I usually have my work’s internal gem repository listed) ruby-git-1.6.0/Gemfile0000644000175000017500000000006713615571573015005 0ustar terceiroterceirosource 'https://rubygems.org' gemspec :name => 'git' ruby-git-1.6.0/.travis.yml0000644000175000017500000000023413615571573015617 0ustar terceiroterceirolanguage: ruby rvm: - 2.3 - 2.4 - 2.5 - 2.6 - ruby-head - jruby matrix: allow_failures: - rvm: jruby - rvm: ruby-head fast_finish: trueruby-git-1.6.0/MAINTAINERS.md0000644000175000017500000000043013615571573015600 0ustar terceiroterceiro# Maintainers When making changes in this repository, one of the maintainers below must review and approve your pull request. ### Maintainers * [Per Lundberg](https://github.com/perlun) * [Vern Burton](https://github.com/tarcinil) * [James Couball](https://github.com/jcouball)ruby-git-1.6.0/README.md0000644000175000017500000002123213615571573014766 0ustar terceiroterceiro# Git Library for Ruby Library for using Git in Ruby. ## Homepage Git public hosting of the project source code is at: http://github.com/ruby-git/ruby-git ## Install You can install Ruby/Git like this: $ sudo gem install git ## Code Status * [![Build Status](https://travis-ci.org/ruby-git/ruby-git.svg?branch=master)](https://travis-ci.org/ruby-git/ruby-git) * [![Code Climate](https://codeclimate.com/github/ruby-git/ruby-git.png)](https://codeclimate.com/github/ruby-git/ruby-git) * [![Gem Version](https://badge.fury.io/rb/git.png)](http://badge.fury.io/rb/git) ## Major Objects **Git::Base** - The object returned from a `Git.open` or `Git.clone`. Most major actions are called from this object. **Git::Object** - The base object for your tree, blob and commit objects, returned from `@git.gtree` or `@git.object` calls. the `Git::AbstractObject` will have most of the calls in common for all those objects. **Git::Diff** - returns from a `@git.diff` command. It is an Enumerable that returns `Git::Diff:DiffFile` objects from which you can get per file patches and insertion/deletion statistics. You can also get total statistics from the Git::Diff object directly. **Git::Status** - returns from a `@git.status` command. It is an Enumerable that returns `Git:Status::StatusFile` objects for each object in git, which includes files in the working directory, in the index and in the repository. Similar to running 'git status' on the command line to determine untracked and changed files. **Git::Branches** - Enumerable object that holds `Git::Branch objects`. You can call .local or .remote on it to filter to just your local or remote branches. **Git::Remote**- A reference to a remote repository that is tracked by this repository. **Git::Log** - An Enumerable object that references all the `Git::Object::Commit` objects that encompass your log query, which can be constructed through methods on the `Git::Log object`, like: `@git.log(20).object("some_file").since("2 weeks ago").between('v2.6', 'v2.7').each { |commit| [block] }` ## Examples Here are a bunch of examples of how to use the Ruby/Git package. Ruby < 1.9 will require rubygems to be loaded. ```ruby require 'rubygems' ``` Require the 'git' gem. ```ruby require 'git' ``` Git env config ```ruby Git.configure do |config| # If you want to use a custom git binary config.binary_path = '/git/bin/path' # If you need to use a custom SSH script config.git_ssh = '/path/to/ssh/script' end ``` _NOTE: Another way to specify where is the `git` binary is through the environment variable `GIT_PATH`_ Here are the operations that need read permission only. ```ruby g = Git.open(working_dir, :log => Logger.new(STDOUT)) g.index g.index.readable? g.index.writable? g.repo g.dir g.log # returns array of Git::Commit objects g.log.since('2 weeks ago') g.log.between('v2.5', 'v2.6') g.log.each {|l| puts l.sha } g.gblob('v2.5:Makefile').log.since('2 weeks ago') g.object('HEAD^').to_s # git show / git rev-parse g.object('HEAD^').contents g.object('v2.5:Makefile').size g.object('v2.5:Makefile').sha g.gtree(treeish) g.gblob(treeish) g.gcommit(treeish) commit = g.gcommit('1cc8667014381') commit.gtree commit.parent.sha commit.parents.size commit.author.name commit.author.email commit.author.date.strftime("%m-%d-%y") commit.committer.name commit.date.strftime("%m-%d-%y") commit.message tree = g.gtree("HEAD^{tree}") tree.blobs tree.subtrees tree.children # blobs and subtrees g.revparse('v2.5:Makefile') g.branches # returns Git::Branch objects g.branches.local g.branches.remote g.branches[:master].gcommit g.branches['origin/master'].gcommit g.grep('hello') # implies HEAD g.blob('v2.5:Makefile').grep('hello') g.tag('v2.5').grep('hello', 'docs/') g.describe() g.describe('0djf2aa') g.describe('HEAD', {:all => true, :tags => true}) g.diff(commit1, commit2).size g.diff(commit1, commit2).stats g.diff(commit1, commit2).name_status g.gtree('v2.5').diff('v2.6').insertions g.diff('gitsearch1', 'v2.5').path('lib/') g.diff('gitsearch1', @git.gtree('v2.5')) g.diff('gitsearch1', 'v2.5').path('docs/').patch g.gtree('v2.5').diff('v2.6').patch g.gtree('v2.5').diff('v2.6').each do |file_diff| puts file_diff.path puts file_diff.patch puts file_diff.blob(:src).contents end g.config('user.name') # returns 'Scott Chacon' g.config # returns whole config hash g.tags # returns array of Git::Tag objects g.show() g.show('HEAD') g.show('v2.8', 'README.md') Git.ls_remote('https://github.com/ruby-git/ruby-git.git') # returns a hash containing the available references of the repo. Git.ls_remote('/path/to/local/repo') Git.ls_remote() # same as Git.ls_remote('.') ``` And here are the operations that will need to write to your git repository. ```ruby g = Git.init Git.init('project') Git.init('/home/schacon/proj', { :repository => '/opt/git/proj.git', :index => '/tmp/index'} ) g = Git.clone(URI, NAME, :path => '/tmp/checkout') g.config('user.name', 'Scott Chacon') g.config('user.email', 'email@email.com') g.add # git add -- "." g.add(:all=>true) # git add --all -- "." g.add('file_path') # git add -- "file_path" g.add(['file_path_1', 'file_path_2']) # git add -- "file_path_1" "file_path_2" g.remove() # git rm -f -- "." g.remove('file.txt') # git rm -f -- "file.txt" g.remove(['file.txt', 'file2.txt']) # git rm -f -- "file.txt" "file2.txt" g.remove('file.txt', :recursive => true) # git rm -f -r -- "file.txt" g.remove('file.txt', :cached => true) # git rm -f --cached -- "file.txt" g.commit('message') g.commit_all('message') g = Git.clone(repo, 'myrepo') g.chdir do new_file('test-file', 'blahblahblah') g.status.changed.each do |file| puts file.blob(:index).contents end end g.reset # defaults to HEAD g.reset_hard(Git::Commit) g.branch('new_branch') # creates new or fetches existing g.branch('new_branch').checkout g.branch('new_branch').delete g.branch('existing_branch').checkout g.branch('master').contains?('existing_branch') g.checkout('new_branch') g.checkout(g.branch('new_branch')) g.branch(name).merge(branch2) g.branch(branch2).merge # merges HEAD with branch2 g.branch(name).in_branch(message) { # add files } # auto-commits g.merge('new_branch') g.merge('origin/remote_branch') g.merge(g.branch('master')) g.merge([branch1, branch2]) g.merge_base('branch1', 'branch2') r = g.add_remote(name, uri) # Git::Remote r = g.add_remote(name, Git::Base) # Git::Remote g.remotes # array of Git::Remotes g.remote(name).fetch g.remote(name).remove g.remote(name).merge g.remote(name).merge(branch) g.fetch g.fetch(g.remotes.first) g.fetch('origin', {:ref => 'some/ref/head'} ) g.pull g.pull(Git::Repo, Git::Branch) # fetch and a merge g.add_tag('tag_name') # returns Git::Tag g.add_tag('tag_name', 'object_reference') g.add_tag('tag_name', 'object_reference', {:options => 'here'}) g.add_tag('tag_name', {:options => 'here'}) Options: :a | :annotate :d :f :m | :message :s g.delete_tag('tag_name') g.repack g.push g.push(g.remote('name')) ``` Some examples of more low-level index and tree operations ```ruby g.with_temp_index do g.read_tree(tree3) # calls self.index.read_tree g.read_tree(tree1, :prefix => 'hi/') c = g.commit_tree('message') # or # t = g.write_tree c = g.commit_tree(t, :message => 'message', :parents => [sha1, sha2]) g.branch('branch_name').update_ref(c) g.update_ref(branch, c) g.with_temp_working do # new blank working directory g.checkout g.checkout(another_index) g.commit # commits to temp_index end end g.set_index('/path/to/index') g.with_index(path) do # calls set_index, then switches back after end g.with_working(dir) do # calls set_working, then switches back after end g.with_temp_working(dir) do g.checkout_index(:prefix => dir, :path_limiter => path) # do file work g.commit # commits to index end ``` ## License licensed under MIT License Copyright (c) 2008 Scott Chacon. See LICENSE for further details. ruby-git-1.6.0/CONTRIBUTING.md0000644000175000017500000001336013615571573015743 0ustar terceiroterceiro# Contributing to ruby-git Thank you for your interest in contributing to the ruby-git project. This document gives the guidelines for contributing to the ruby-git project. These guidelines may not fit every situation. When contributing use your best judgement. Propose changes to these guidelines with a pull request. ## How to contribute to ruby-git You can contribute in two ways: 1. [Report an issue or make a feature request](#how-to-report-an-issue-or-make-a-feature-request) 2. [Submit a code or documentation change](#how-to-submit-a-code-or-documentation-change) ## How to report an issue or make a feature request ruby-git utilizes [GitHub Issues](https://help.github.com/en/github/managing-your-work-on-github/about-issues) for issue tracking and feature requests. Report an issue or feature request by [creating a ruby-git Github issue](https://github.com/ruby-git/ruby-git/issues/new). Fill in the template to describe the issue or feature request the best you can. ## How to submit a code or documentation change There is three step process for code or documentation changes: 1. [Commit your changes to a fork of ruby-git](#commit-changes-to-a-fork-of-ruby-git) 2. [Create a pull request](#create-a-pull-request) 3. [Get your pull request reviewed](#get-your-pull-request-reviewed) ### Commit changes to a fork of ruby-git Make your changes in a fork of the ruby-git repository. Each commit must include a [DCO sign-off](#developer-certificate-of-origin-dco) by adding the line `Signed-off-by: Name ` to the end of the commit message. ### Create a pull request See [this article](https://help.github.com/articles/about-pull-requests/) if you are not familiar with GitHub Pull Requests. Follow the instructions in the pull request template. ### Get your pull request reviewed Code review takes place in a GitHub pull request using the [the Github pull request review feature](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-reviews). Once your pull request is ready for review, request a review from at least one [maintainer](MAINTAINERS.md) and any number of other contributors. During the review process, you may need to make additional commits which would need to be squashed. It may also be necessary to rebase to master again if other changes are merged before your PR. At least one approval is required from a project maintainer before your pull request can be merged. The maintainer is responsible for ensuring that the pull request meets [the project's coding standards](#coding-standards). ## Coding standards In order to ensure high quality, all pull requests must meet these requirements: ### 1 PR = 1 Commit * All commits for a PR must be squashed into one commit * To avoid an extra merge commit, the PR must be able to be merged as [a fast forward merge](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging) * The easiest way to ensure a fast forward merge is to rebase your local branch to the ruby-git master branch ### Unit tests * All changes must be accompanied by new or modified unit tests * The entire test suite must pass when `bundle exec rake test` is run from the project's local working copy ### Continuous Integration * All tests must pass in the project's [Travis CI](https://travis-ci.org/ruby-git/ruby-git) build before the pull request will be merged ### Documentation * New and updated public methods must have [YARD](https://yardoc.org/) documentation added to them * New and updated public facing features should be documented in the project's [README.md](README.md) ### Licensing sign-off * Each commit must contain [the DCO sign-off](#developer-certificate-of-origin-dco) in the form: `Signed-off-by: Name ` ## Licensing ruby-git uses [the MIT license](https://choosealicense.com/licenses/mit/) as declared in the [LICENSE](LICENSE) file. Licensing is very important to open source projects. It helps ensure the software continues to be available under the terms that the author desired. ### Developer Certificate of Origin (DCO) This project requires that authors have permission to submit their contributions under the MIT license. To make a good faith effort to ensure this, ruby-git requires the [Developer Certificate of Origin (DCO)](https://elinux.org/Developer_Certificate_Of_Origin) process be followed. This process requires that each commit include a `Signed-off-by` line that indicates the author accepts the DCO. Here is an example DCO sign-off line: ``` Signed-off-by: John Doe ``` The full text of the DCO version 1.1 is below or at . ``` Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as Indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. ``` ruby-git-1.6.0/tests/0000755000175000017500000000000013615571573014651 5ustar terceiroterceiroruby-git-1.6.0/tests/test_helper.rb0000644000175000017500000000474613615571573017527 0ustar terceiroterceirorequire 'date' require 'fileutils' require 'logger' require 'test/unit' require "#{File.expand_path(File.dirname(__FILE__))}/../lib/git" class Test::Unit::TestCase def set_file_paths cwd = `pwd`.chomp if File.directory?(File.join(cwd, 'files')) @test_dir = File.join(cwd, 'files') elsif File.directory?(File.join(cwd, '..', 'files')) @test_dir = File.join(cwd, '..', 'files') elsif File.directory?(File.join(cwd, 'tests', 'files')) @test_dir = File.join(cwd, 'tests', 'files') end @wdir_dot = File.expand_path(File.join(@test_dir, 'working')) @wbare = File.expand_path(File.join(@test_dir, 'working.git')) @index = File.expand_path(File.join(@test_dir, 'index')) @wdir = create_temp_repo(@wdir_dot) end teardown def git_teardown if @tmp_path FileUtils.rm_r(@tmp_path) end end def create_temp_repo(clone_path) filename = 'git_test' + Time.now.to_i.to_s + rand(300).to_s.rjust(3, '0') @tmp_path = File.join("/tmp/", filename) FileUtils.mkdir_p(@tmp_path) FileUtils.cp_r(clone_path, @tmp_path) tmp_path = File.join(@tmp_path, 'working') Dir.chdir(tmp_path) do FileUtils.mv('dot_git', '.git') end tmp_path end def in_temp_dir(remove_after = true) # :yields: the temporary dir's path tmp_path = nil while tmp_path.nil? || File.directory?(tmp_path) filename = 'git_test' + Time.now.to_i.to_s + rand(300).to_s.rjust(3, '0') tmp_path = File.join("/tmp/", filename) end FileUtils.mkdir(tmp_path) Dir.chdir tmp_path do yield tmp_path end FileUtils.rm_r(tmp_path) if remove_after end def create_file(path, content) File.open(path,'w') do |file| file.puts(content) end end def update_file(path, content) create_file(path,content) end def delete_file(path) File.delete(path) end def new_file(name, contents) create_file(name,contents) end def append_file(name, contents) File.open(name, 'a') do |f| f.puts contents end end # Runs a block inside an environment with customized ENV variables. # It restores the ENV after execution. # # @param [Proc] block block to be executed within the customized environment # def with_custom_env_variables(&block) saved_env = {} begin Git::Lib::ENV_VARIABLE_NAMES.each { |k| saved_env[k] = ENV[k] } return block.call ensure Git::Lib::ENV_VARIABLE_NAMES.each { |k| ENV[k] = saved_env[k] } end end end ruby-git-1.6.0/tests/units/0000755000175000017500000000000013615571573016013 5ustar terceiroterceiroruby-git-1.6.0/tests/units/test_describe.rb0000644000175000017500000000042413615571573021157 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestDescribe < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) end def test_describe assert_equal(@git.describe(nil, {:tags => true}), 'v2.8') end end ruby-git-1.6.0/tests/units/test_remotes.rb0000644000175000017500000001326213615571573021061 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestRemotes < Test::Unit::TestCase def setup set_file_paths end def test_add_remote in_temp_dir do |path| local = Git.clone(@wbare, 'local') remote = Git.clone(@wbare, 'remote') local.add_remote('testremote', remote) assert(!local.branches.map{|b| b.full}.include?('testremote/master')) assert(local.remotes.map{|b| b.name}.include?('testremote')) local.add_remote('testremote2', remote, :fetch => true) assert(local.branches.map{|b| b.full}.include?('remotes/testremote2/master')) assert(local.remotes.map{|b| b.name}.include?('testremote2')) local.add_remote('testremote3', remote, :track => 'master') assert(local.branches.map{|b| b.full}.include?('master')) #We actually a new branch ('test_track') on the remote and track that one intead. assert(local.remotes.map{|b| b.name}.include?('testremote3')) end end def test_remove_remote_remove in_temp_dir do |path| local = Git.clone(@wbare, 'local') remote = Git.clone(@wbare, 'remote') local.add_remote('testremote', remote) local.remove_remote('testremote') assert(!local.remotes.map{|b| b.name}.include?('testremote')) local.add_remote('testremote', remote) local.remote('testremote').remove assert(!local.remotes.map{|b| b.name}.include?('testremote')) end end def test_set_remote_url in_temp_dir do |path| local = Git.clone(@wbare, 'local') remote1 = Git.clone(@wbare, 'remote1') remote2 = Git.clone(@wbare, 'remote2') local.add_remote('testremote', remote1) local.set_remote_url('testremote', remote2) assert(local.remotes.map{|b| b.name}.include?('testremote')) assert(local.remote('testremote').url != remote1.repo.path) assert(local.remote('testremote').url == remote2.repo.path) end end def test_remote_fun in_temp_dir do |path| loc = Git.clone(@wbare, 'local') rem = Git.clone(@wbare, 'remote') r = loc.add_remote('testrem', rem) Dir.chdir('remote') do new_file('test-file1', 'blahblahblah1') rem.add rem.commit('master commit') rem.branch('testbranch').in_branch('tb commit') do new_file('test-file3', 'blahblahblah3') rem.add true end end assert(!loc.status['test-file1']) assert(!loc.status['test-file3']) r.fetch r.merge assert(loc.status['test-file1']) loc.merge(loc.remote('testrem').branch('testbranch')) assert(loc.status['test-file3']) #puts loc.remotes.map { |r| r.to_s }.inspect #r.remove #puts loc.remotes.inspect end end def test_fetch in_temp_dir do |path| loc = Git.clone(@wbare, 'local') rem = Git.clone(@wbare, 'remote') r = loc.add_remote('testrem', rem) Dir.chdir('remote') do rem.branch('testbranch').in_branch('tb commit') do new_file('test-file', 'add file') rem.add true end rem.branch('testbranch').in_branch do rem.add_tag('test-tag-in-deleted-branch') false end rem.branch('testbranch').delete end r.fetch assert(!loc.tags.map(&:name).include?('test-tag-in-deleted-branch')) r.fetch :tags => true assert(loc.tags.map(&:name).include?('test-tag-in-deleted-branch')) end end def test_fetch_ref_adds_ref_option in_temp_dir do |path| loc = Git.clone(@wbare, 'local') rem = Git.clone(@wbare, 'remote', :config => 'receive.denyCurrentBranch=ignore') loc.add_remote('testrem', rem) loc.chdir do new_file('test-file1', 'gonnaCommitYou') loc.add loc.commit('master commit 1') first_commit_sha = loc.log.first.sha new_file('test-file2', 'gonnaCommitYouToo') loc.add loc.commit('master commit 2') second_commit_sha = loc.log.first.sha # Make sure fetch message only has the first commit when we fetch the first commit assert(loc.fetch('origin', {:ref => first_commit_sha}).include?(first_commit_sha)) assert(!loc.fetch('origin', {:ref => first_commit_sha}).include?(second_commit_sha)) # Make sure fetch message only has the second commit when we fetch the second commit assert(loc.fetch('origin', {:ref => second_commit_sha}).include?(second_commit_sha)) assert(!loc.fetch('origin', {:ref => second_commit_sha}).include?(first_commit_sha)) end end end def test_push in_temp_dir do |path| loc = Git.clone(@wbare, 'local') rem = Git.clone(@wbare, 'remote', :config => 'receive.denyCurrentBranch=ignore') loc.add_remote('testrem', rem) loc.chdir do new_file('test-file1', 'blahblahblah1') loc.add loc.commit('master commit') loc.add_tag('test-tag') loc.branch('testbranch').in_branch('tb commit') do new_file('test-file3', 'blahblahblah3') loc.add true end end assert(!rem.status['test-file1']) assert(!rem.status['test-file3']) loc.push('testrem') assert(rem.status['test-file1']) assert(!rem.status['test-file3']) assert_raise Git::GitTagNameDoesNotExist do rem.tag('test-tag') end loc.push('testrem', 'testbranch', true) rem.checkout('testbranch') assert(rem.status['test-file1']) assert(rem.status['test-file3']) assert(rem.tag('test-tag')) end end end ruby-git-1.6.0/tests/units/test_status.rb0000644000175000017500000000463713615571573020734 0ustar terceiroterceiro #!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestStatus < Test::Unit::TestCase def setup set_file_paths end def test_dot_files_status in_temp_dir do |path| git = Git.clone(@wdir, 'test_dot_files_status') create_file('test_dot_files_status/test_file_1', 'content tets_file_1') create_file('test_dot_files_status/.test_file_2', 'content test_file_2') git.add('test_file_1') git.add('.test_file_2') assert(git.status.added.assoc('test_file_1')) assert(git.status.added.assoc('.test_file_2')) end end def test_added_boolean in_temp_dir do |path| git = Git.clone(@wdir, 'test_dot_files_status') create_file('test_dot_files_status/test_file_1', 'content tets_file_1') create_file('test_dot_files_status/test_file_2', 'content tets_file_2') git.add('test_file_1') assert(git.status.added?('test_file_1')) assert(!git.status.added?('test_file_2')) end end def test_changed_boolean in_temp_dir do |path| git = Git.clone(@wdir, 'test_dot_files_status') create_file('test_dot_files_status/test_file_1', 'content tets_file_1') create_file('test_dot_files_status/test_file_2', 'content tets_file_2') git.add('test_file_1') git.add('test_file_2') git.commit('message') update_file('test_dot_files_status/test_file_1', 'update_content tets_file_1') assert(git.status.changed?('test_file_1')) assert(!git.status.changed?('test_file_2')) end end def test_deleted_boolean in_temp_dir do |path| git = Git.clone(@wdir, 'test_dot_files_status') create_file('test_dot_files_status/test_file_1', 'content tets_file_1') create_file('test_dot_files_status/test_file_2', 'content tets_file_2') git.add('test_file_1') git.commit('message') delete_file('test_dot_files_status/test_file_1') assert(git.status.deleted?('test_file_1')) assert(!git.status.deleted?('test_file_2')) end end def test_untracked_boolean in_temp_dir do |path| git = Git.clone(@wdir, 'test_dot_files_status') create_file('test_dot_files_status/test_file_1', 'content tets_file_1') create_file('test_dot_files_status/test_file_2', 'content tets_file_2') git.add('test_file_2') assert(git.status.untracked?('test_file_1')) assert(!git.status.untracked?('test_file_2')) end end end ruby-git-1.6.0/tests/units/test_repack.rb0000644000175000017500000000106313615571573020644 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestRepack < Test::Unit::TestCase def setup set_file_paths end def test_repack in_temp_dir do |path| r1 = Git.clone(@wbare, 'repo1') r1.chdir do new_file('new_file', 'new content') end r1.add r1.commit('my commit') # see how big the repo is size1 = r1.repo_size r1.repack # see how big the repo is now, should be smaller assert(size1 > r1.repo_size) end end endruby-git-1.6.0/tests/units/test_lib.rb0000644000175000017500000002247613615571573020160 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' # tests all the low level git communication # # this will be helpful if we ever figure out how # to either build these in pure ruby or get git bindings working # because right now it forks for every call class TestLib < Test::Unit::TestCase def setup set_file_paths @lib = Git.open(@wdir).lib end def test_fetch_unshallow in_temp_dir do |dir| git = Git.clone("file://#{@wdir}", "shallow", path: dir, depth: 1).lib assert_equal(1, git.log_commits.length) git.fetch("file://#{@wdir}", unshallow: true) assert_equal(71, git.log_commits.length) end end def test_commit_data data = @lib.commit_data('1cc8667014381') assert_equal('scott Chacon 1194561188 -0800', data['author']) assert_equal('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', data['tree']) assert_equal("test\n", data['message']) assert_equal(["546bec6f8872efa41d5d97a369f669165ecda0de"], data['parent']) end def test_commit_with_date create_file("#{@wdir}/test_file_1", 'content tets_file_1') @lib.add('test_file_1') author_date = Time.new(2016, 8, 3, 17, 37, 0, "-03:00") @lib.commit('commit with date', date: author_date.strftime('%Y-%m-%dT%H:%M:%S %z')) data = @lib.commit_data('HEAD') assert_equal("Scott Chacon #{author_date.strftime("%s %z")}", data['author']) end def test_checkout assert(@lib.checkout('test_checkout_b',{:new_branch=>true})) assert(@lib.checkout('master')) end # takes parameters, returns array of appropriate commit objects # :count # :since # :between # :object def test_log_commits a = @lib.log_commits :count => 10 assert(a.first.is_a?(String)) assert_equal(10, a.size) a = @lib.log_commits :count => 20, :since => "#{Date.today.year - 2006} years ago" assert(a.first.is_a?(String)) assert_equal(20, a.size) a = @lib.log_commits :count => 20, :since => '1 second ago' assert_equal(0, a.size) a = @lib.log_commits :count => 20, :between => ['v2.5', 'v2.6'] assert_equal(2, a.size) a = @lib.log_commits :count => 20, :path_limiter => 'ex_dir/' assert_equal(1, a.size) a = @lib.full_log_commits :count => 20 assert_equal(20, a.size) end def test_environment_reset with_custom_env_variables do ENV['GIT_DIR'] = '/my/git/dir' ENV['GIT_WORK_TREE'] = '/my/work/tree' ENV['GIT_INDEX_FILE'] = 'my_index' @lib.log_commits :count => 10 assert_equal(ENV['GIT_DIR'], '/my/git/dir') assert_equal(ENV['GIT_WORK_TREE'], '/my/work/tree') assert_equal(ENV['GIT_INDEX_FILE'],'my_index') end end def test_git_ssh_from_environment_is_passed_to_binary with_custom_env_variables do begin ENV['GIT_SSH'] = 'my/git-ssh-wrapper' Dir.mktmpdir do |dir| output_path = File.join(dir, 'git_ssh_value') binary_path = File.join(dir, 'git') Git::Base.config.binary_path = binary_path File.open(binary_path, 'w') { |f| f << "echo $GIT_SSH > #{output_path}" } FileUtils.chmod(0700, binary_path) @lib.checkout('something') assert_equal("my/git-ssh-wrapper\n", File.read(output_path)) end ensure Git.configure do |config| config.binary_path = nil config.git_ssh = nil end end end end def test_revparse assert_equal('1cc8667014381e2788a94777532a788307f38d26', @lib.revparse('1cc8667014381')) # commit assert_equal('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', @lib.revparse('1cc8667014381^{tree}')) #tree assert_equal('ba492c62b6227d7f3507b4dcc6e6d5f13790eabf', @lib.revparse('v2.5:example.txt')) #blob end def test_object_type assert_equal('commit', @lib.object_type('1cc8667014381')) # commit assert_equal('tree', @lib.object_type('1cc8667014381^{tree}')) #tree assert_equal('blob', @lib.object_type('v2.5:example.txt')) #blob assert_equal('commit', @lib.object_type('v2.5')) end def test_object_size assert_equal(265, @lib.object_size('1cc8667014381')) # commit assert_equal(72, @lib.object_size('1cc8667014381^{tree}')) #tree assert_equal(128, @lib.object_size('v2.5:example.txt')) #blob assert_equal(265, @lib.object_size('v2.5')) end def test_object_contents commit = "tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7\n" commit << "parent 546bec6f8872efa41d5d97a369f669165ecda0de\n" commit << "author scott Chacon 1194561188 -0800\n" commit << "committer scott Chacon 1194561188 -0800\n" commit << "\ntest" assert_equal(commit, @lib.object_contents('1cc8667014381')) # commit tree = "040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed\tex_dir\n" tree << "100644 blob 3aac4b445017a8fc07502670ec2dbf744213dd48\texample.txt" assert_equal(tree, @lib.object_contents('1cc8667014381^{tree}')) #tree blob = "1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n2" assert_equal(blob, @lib.object_contents('v2.5:example.txt')) #blob end def test_object_contents_with_block commit = "tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7\n" commit << "parent 546bec6f8872efa41d5d97a369f669165ecda0de\n" commit << "author scott Chacon 1194561188 -0800\n" commit << "committer scott Chacon 1194561188 -0800\n" commit << "\ntest" @lib.object_contents('1cc8667014381') do |f| assert_equal(commit, f.read.chomp) end # commit tree = "040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed\tex_dir\n" tree << "100644 blob 3aac4b445017a8fc07502670ec2dbf744213dd48\texample.txt" @lib.object_contents('1cc8667014381^{tree}') do |f| assert_equal(tree, f.read.chomp) #tree end blob = "1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n1\n2" @lib.object_contents('v2.5:example.txt') do |f| assert_equal(blob, f.read.chomp) #blob end end # returns Git::Branch object array def test_branches_all branches = @lib.branches_all assert(branches.size > 0) assert(branches.select { |b| b[1] }.size > 0) # has a current branch assert(branches.select { |b| /\//.match(b[0]) }.size > 0) # has a remote branch assert(branches.select { |b| !/\//.match(b[0]) }.size > 0) # has a local branch assert(branches.select { |b| /master/.match(b[0]) }.size > 0) # has a master branch end def test_config_remote config = @lib.config_remote('working') assert_equal('../working.git', config['url']) assert_equal('+refs/heads/*:refs/remotes/working/*', config['fetch']) end def test_ls_tree tree = @lib.ls_tree('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7') assert_equal("3aac4b445017a8fc07502670ec2dbf744213dd48", tree['blob']['example.txt'][:sha]) assert_equal("100644", tree['blob']['example.txt'][:mode]) assert(tree['tree']) end def test_ls_remote in_temp_dir do |path| lib = Git::Lib.new ls = lib.ls_remote(@wbare) assert_equal(%w( gitsearch1 v2.5 v2.6 v2.7 v2.8 ), ls['tags'].keys.sort) assert_equal("935badc874edd62a8629aaf103418092c73f0a56", ls['tags']['gitsearch1'][:sha]) assert_equal(%w( git_grep master test test_branches test_object ), ls['branches'].keys.sort) assert_equal("5e392652a881999392c2757cf9b783c5d47b67f7", ls['branches']['master'][:sha]) assert_equal("HEAD", ls['head'][:ref]) assert_equal("5e392652a881999392c2757cf9b783c5d47b67f7", ls['head'][:sha]) assert_equal(nil, ls['head'][:name]) end end # options this will accept # :treeish # :path_limiter # :ignore_case (bool) # :invert_match (bool) def test_grep match = @lib.grep('search', :object => 'gitsearch1') assert_equal('to search one', match['gitsearch1:scott/text.txt'].assoc(6)[1]) assert_equal(2, match['gitsearch1:scott/text.txt'].size) assert_equal(2, match.size) match = @lib.grep('search', :object => 'gitsearch1', :path_limiter => 'scott/new*') assert_equal("you can't search me!", match["gitsearch1:scott/newfile"].first[1]) assert_equal(1, match.size) match = @lib.grep('SEARCH', :object => 'gitsearch1') assert_equal(0, match.size) match = @lib.grep('SEARCH', :object => 'gitsearch1', :ignore_case => true) assert_equal("you can't search me!", match["gitsearch1:scott/newfile"].first[1]) assert_equal(2, match.size) match = @lib.grep('search', :object => 'gitsearch1', :invert_match => true) assert_equal(6, match['gitsearch1:scott/text.txt'].size) assert_equal(2, match.size) end def test_show assert(/^commit 5e53019b3238362144c2766f02a2c00d91fcc023.+\+replace with new text - diff test$/m.match(@lib.show)) assert(/^commit 935badc874edd62a8629aaf103418092c73f0a56.+\+nothing!$/m.match(@lib.show('gitsearch1'))) assert(/^hello.+nothing!$/m.match(@lib.show('gitsearch1', 'scott/text.txt'))) end end ruby-git-1.6.0/tests/units/test_thread_safety.rb0000644000175000017500000000074113615571573022223 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestThreadSafety < Test::Unit::TestCase def setup set_file_paths end def test_git_init_bare dirs = [] threads = [] 5.times do dirs << Dir.mktmpdir end dirs.each do |dir| threads << Thread.new do Git.init(dir, :bare => true) end end threads.each(&:join) dirs.each do |dir| Git.bare("#{dir}/.git").ls_files end end end ruby-git-1.6.0/tests/units/test_log.rb0000644000175000017500000000407213615571573020163 0ustar terceiroterceiro#!/usr/bin/env ruby require 'logger' require File.dirname(__FILE__) + '/../test_helper' class TestLog < Test::Unit::TestCase def setup set_file_paths #@git = Git.open(@wdir, :log => Logger.new(STDOUT)) @git = Git.open(@wdir) end def test_get_fisrt_and_last_entries log = @git.log assert(log.first.is_a?(Git::Object::Commit)) assert_equal('5e53019b3238362144c2766f02a2c00d91fcc023', log.first.objectish) assert(log.last.is_a?(Git::Object::Commit)) assert_equal('f1410f8735f6f73d3599eb9b5cdd2fb70373335c', log.last.objectish) end def test_get_log_entries assert_equal(30, @git.log.size) assert_equal(50, @git.log(50).size) assert_equal(10, @git.log(10).size) end def test_get_log_to_s assert_equal(@git.log.to_s.split("\n").first, @git.log.first.sha) end def test_log_skip three1 = @git.log(3).to_a[-1] three2 = @git.log(2).skip(1).to_a[-1] three3 = @git.log(1).skip(2).to_a[-1] assert_equal(three2.sha, three3.sha) assert_equal(three1.sha, three2.sha) end def test_get_log_since l = @git.log.since("2 seconds ago") assert_equal(0, l.size) l = @git.log.since("#{Date.today.year - 2006} years ago") assert_equal(30, l.size) end def test_get_log_grep l = @git.log.grep("search") assert_equal(2, l.size) end def test_get_log_author l = @git.log(5).author("chacon") assert_equal(5, l.size) l = @git.log(5).author("lazySusan") assert_equal(0, l.size) end def test_get_log_since_file l = @git.log.path('example.txt') assert_equal(30, l.size) l = @git.log.between('v2.5', 'test').path('example.txt') assert_equal(1, l.size) end def test_get_log_path log = @git.log.path('example.txt') assert_equal(30, log.size) log = @git.log.path('example*') assert_equal(30, log.size) log = @git.log.path(['example.txt','scott/text.txt']) assert_equal(30, log.size) end def test_log_file_noexist assert_raise Git::GitExecuteError do @git.log.object('no-exist.txt').size end end end ruby-git-1.6.0/tests/units/test_merge.rb0000644000175000017500000000546513615571573020510 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestMerge < Test::Unit::TestCase def setup set_file_paths end def test_branch_and_merge in_temp_dir do |path| g = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do g.branch('new_branch').in_branch('test') do assert_equal('new_branch', g.current_branch) new_file('new_file_1', 'hello') new_file('new_file_2', 'hello') g.add true end assert_equal('master', g.current_branch) new_file('new_file_3', 'hello') g.add assert(!g.status['new_file_1']) # file is not there assert(g.branch('new_branch').merge) assert(g.status['new_file_1']) # file has been merged in end end end def test_branch_and_merge_two in_temp_dir do |path| g = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do g.branch('new_branch').in_branch('test') do assert_equal('new_branch', g.current_branch) new_file('new_file_1', 'hello') new_file('new_file_2', 'hello') g.add true end g.branch('new_branch2').in_branch('test') do assert_equal('new_branch2', g.current_branch) new_file('new_file_3', 'hello') new_file('new_file_4', 'hello') g.add true end g.branch('new_branch').merge('new_branch2') assert(!g.status['new_file_3']) # still in master branch g.branch('new_branch').checkout assert(g.status['new_file_3']) # file has been merged in g.branch('master').checkout g.merge(g.branch('new_branch')) assert(g.status['new_file_3']) # file has been merged in end end end def test_branch_and_merge_multiple in_temp_dir do |path| g = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do g.branch('new_branch').in_branch('test') do assert_equal('new_branch', g.current_branch) new_file('new_file_1', 'hello') new_file('new_file_2', 'hello') g.add true end g.branch('new_branch2').in_branch('test') do assert_equal('new_branch2', g.current_branch) new_file('new_file_3', 'hello') new_file('new_file_4', 'hello') g.add true end assert(!g.status['new_file_1']) # still in master branch assert(!g.status['new_file_3']) # still in master branch g.merge(['new_branch', 'new_branch2']) assert(g.status['new_file_1']) # file has been merged in assert(g.status['new_file_3']) # file has been merged in end end end endruby-git-1.6.0/tests/units/test_archive.rb0000644000175000017500000000267213615571573021027 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestArchive < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) end def tempfile Tempfile.new('archive-test').path end def test_archive f = @git.archive('v2.6', tempfile) assert(File.exist?(f)) f = @git.object('v2.6').archive(tempfile) # writes to given file assert(File.exist?(f)) f = @git.object('v2.6').archive # returns path to temp file assert(File.exist?(f)) f = @git.object('v2.6').archive(nil, :format => 'tar') # returns path to temp file assert(File.exist?(f)) lines = `cd /tmp; tar xvpf #{f} 2>&1`.split("\n") assert_match(%r{ex_dir/}, lines[0]) assert_match(/example.txt/, lines[2]) f = @git.object('v2.6').archive(tempfile, :format => 'zip') assert(File.file?(f)) f = @git.object('v2.6').archive(tempfile, :format => 'tgz', :prefix => 'test/') assert(File.exist?(f)) f = @git.object('v2.6').archive(tempfile, :format => 'tar', :prefix => 'test/', :path => 'ex_dir/') assert(File.exist?(f)) lines = `cd /tmp; tar xvpf #{f} 2>&1`.split("\n") assert_match(%r{test/}, lines[0]) assert_match(%r{test/ex_dir/ex\.txt}, lines[2]) in_temp_dir do c = Git.clone(@wbare, 'new') c.chdir do f = @git.remote('origin').branch('master').archive(tempfile, :format => 'tgz') assert(File.exist?(f)) end end end end ruby-git-1.6.0/tests/units/test_diff.rb0000644000175000017500000000534413615571573020315 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestDiff < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) @diff = @git.diff('gitsearch1', 'v2.5') end #def test_diff # g.diff # assert(1, d.size) #end def test_diff_current_vs_head #test git diff without specifying source/destination commits update_file(File.join(@wdir,"example.txt"),"FRANCO") d = @git.diff patch = d.patch assert(patch.match(/\+FRANCO/)) end def test_diff_tags d = @git.diff('gitsearch1', 'v2.5') assert_equal(3, d.size) assert_equal(74, d.lines) assert_equal(10, d.deletions) assert_equal(64, d.insertions) end # Patch files on diff outputs used to be parsed as # part of the diff adding invalid modificaction # to the diff results. def test_diff_patch d = @git.diff('diff_over_patches~2', 'diff_over_patches') assert_equal(1, d.count) end def test_diff_path d = @git.diff('gitsearch1', 'v2.5').path('scott/') assert_equal(d.from, 'gitsearch1') assert_equal(d.to, 'v2.5') assert_equal(2, d.size) assert_equal(9, d.lines) assert_equal(9, d.deletions) assert_equal(0, d.insertions) end def test_diff_objects d = @git.diff('gitsearch1', @git.gtree('v2.5')) assert_equal(3, d.size) end def test_object_diff d = @git.gtree('v2.5').diff('gitsearch1') assert_equal(3, d.size) assert_equal(74, d.lines) assert_equal(10, d.insertions) assert_equal(64, d.deletions) d = @git.gtree('v2.6').diff(@git.gtree('gitsearch1')) assert_equal(2, d.size) assert_equal(9, d.lines) end def test_diff_stats s = @diff.stats assert_equal(3, s[:total][:files]) assert_equal(74, s[:total][:lines]) assert_equal(10, s[:total][:deletions]) assert_equal(64, s[:total][:insertions]) # per file assert_equal(1, s[:files]["scott/newfile"][:deletions]) end def test_diff_hashkey assert_equal('5d46068', @diff["scott/newfile"].src) assert_nil(@diff["scott/newfile"].blob(:dst)) assert(@diff["scott/newfile"].blob(:src).is_a?(Git::Object::Blob)) end def test_patch p = @git.diff('v2.8^', 'v2.8').patch diff = "diff --git a/example.txt b/example.txt\nindex 1f09f2e..8dc79ae 100644\n--- a/example.txt\n+++ b/example.txt\n@@ -1 +1 @@\n-replace with new text\n+replace with new text - diff test" assert_equal(diff, p) end def test_diff_each files = {} @diff.each do |d| files[d.path] = d end assert(files['example.txt']) assert_equal('100644', files['scott/newfile'].mode) assert_equal('deleted', files['scott/newfile'].type) assert_equal(160, files['scott/newfile'].patch.size) end end ruby-git-1.6.0/tests/units/test_each_conflict.rb0000644000175000017500000000202313615571573022155 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestEachConflict < Test::Unit::TestCase def setup set_file_paths #@git = Git.open(@wdir, :log => Logger.new(STDOUT)) @git = Git.open(@wdir) end def test_conflicts in_temp_dir do |path| g = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do g.branch('new_branch').in_branch('test') do new_file('example.txt', "1\n2\n3") g.add true end g.branch('new_branch2').in_branch('test') do new_file('example.txt', "1\n4\n3") g.add true end g.merge('new_branch') begin g.merge('new_branch2') rescue end g.each_conflict do |file, your, their| assert_equal('example.txt', file) assert_equal("1\n2\n3\n", File.read(your)) assert_equal("1\n4\n3\n", File.read(their)) end end end end endruby-git-1.6.0/tests/units/test_logger.rb0000644000175000017500000000166113615571573020662 0ustar terceiroterceiro#!/usr/bin/env ruby require 'logger' require File.dirname(__FILE__) + '/../test_helper' class TestLogger < Test::Unit::TestCase def setup set_file_paths end def test_logger log = Tempfile.new('logfile') log.close logger = Logger.new(log.path) logger.level = Logger::DEBUG @git = Git.open(@wdir, :log => logger) @git.branches.size logc = File.read(log.path) assert(/INFO -- : git '--git-dir=[^']+' '--work-tree=[^']+' branch '-a'/.match(logc)) assert(/DEBUG -- : diff_over_patches/.match(logc)) log = Tempfile.new('logfile') log.close logger = Logger.new(log.path) logger.level = Logger::INFO @git = Git.open(@wdir, :log => logger) @git.branches.size logc = File.read(log.path) assert(/INFO -- : git '--git-dir=[^']+' '--work-tree=[^']+' branch '-a'/.match(logc)) assert(!/DEBUG -- : diff_over_patches/.match(logc)) end end ruby-git-1.6.0/tests/units/test_merge_base.rb0000755000175000017500000001126513615571573021500 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestMergeBase < Test::Unit::TestCase def setup set_file_paths end def test_branch_and_master_merge_base in_temp_dir do |_path| repo = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do true_ancestor_sha = repo.gcommit('master').sha add_commit(repo, 'new_branch') add_commit(repo, 'master') ancestors = repo.merge_base('master', 'new_branch') assert_equal(ancestors.size, 1) # there is only one true ancestor assert_equal(ancestors.first.sha, true_ancestor_sha) # proper common ancestor end end end def test_branch_and_master_independent_merge_base in_temp_dir do |_path| repo = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do true_ancestor_sha = repo.gcommit('master').sha add_commit(repo, 'new_branch') add_commit(repo, 'master') independent_commits = repo.merge_base(true_ancestor_sha, 'master', 'new_branch', independent: true) assert_equal(independent_commits.size, 2) # both new master and a branch are unreachable from each other true_independent_commits_shas = [repo.gcommit('master').sha, repo.gcommit('new_branch').sha] assert_equal(independent_commits.map(&:sha).sort, true_independent_commits_shas.sort) end end end def test_branch_and_master_fork_point_merge_base in_temp_dir do |_path| repo = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do add_commit(repo, 'master') true_ancestor_sha = repo.gcommit('master').sha add_commit(repo, 'new_branch') repo.reset_hard(repo.gcommit('HEAD^')) add_commit(repo, 'master') ancestors = repo.merge_base('master', 'new_branch', fork_point: true) assert_equal(ancestors.size, 1) # there is only one true ancestor assert_equal(ancestors.first.sha, true_ancestor_sha) # proper common ancestor end end end def test_branch_and_master_all_merge_base in_temp_dir do |_path| repo = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do add_commit(repo, 'new_branch_1') first_commit_sha = repo.gcommit('new_branch_1').sha add_commit(repo, 'new_branch_2') second_commit_sha = repo.gcommit('new_branch_2').sha repo.branch('new_branch_1').merge('new_branch_2') repo.branch('new_branch_2').merge('new_branch_1^') add_commit(repo, 'new_branch_1') add_commit(repo, 'new_branch_2') true_ancestors_shas = [first_commit_sha, second_commit_sha] ancestors = repo.merge_base('new_branch_1', 'new_branch_2') assert_equal(ancestors.size, 1) # default behavior returns only one ancestor assert(true_ancestors_shas.include?(ancestors.first.sha)) all_ancestors = repo.merge_base('new_branch_1', 'new_branch_2', all: true) assert_equal(all_ancestors.size, 2) # there are two best ancestors in such case assert_equal(all_ancestors.map(&:sha).sort, true_ancestors_shas.sort) end end end def test_branches_and_master_merge_base in_temp_dir do |_path| repo = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do add_commit(repo, 'new_branch_1') add_commit(repo, 'master') non_octopus_ancestor_sha = repo.gcommit('master').sha add_commit(repo, 'new_branch_2') add_commit(repo, 'master') ancestors = repo.merge_base('master', 'new_branch_1', 'new_branch_2') assert_equal(ancestors.size, 1) # there is only one true ancestor assert_equal(ancestors.first.sha, non_octopus_ancestor_sha) # proper common ancestor end end end def test_branches_and_master_octopus_merge_base in_temp_dir do |_path| repo = Git.clone(@wbare, 'branch_merge_test') Dir.chdir('branch_merge_test') do true_ancestor_sha = repo.gcommit('master').sha add_commit(repo, 'new_branch_1') add_commit(repo, 'master') add_commit(repo, 'new_branch_2') add_commit(repo, 'master') ancestors = repo.merge_base('master', 'new_branch_1', 'new_branch_2', octopus: true) assert_equal(ancestors.size, 1) # there is only one true ancestor assert_equal(ancestors.first.sha, true_ancestor_sha) # proper common ancestor end end end private def add_commit(repo, branch_name) @commit_number ||= 0 @commit_number += 1 repo.branch(branch_name).in_branch("test commit #{@commit_number}") do new_file("new_file_#{@commit_number}", 'hello') repo.add true end end end ruby-git-1.6.0/tests/units/test_stashes.rb0000644000175000017500000000260013615571573021047 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestStashes < Test::Unit::TestCase def setup set_file_paths end def test_stash_unstash in_temp_dir do |path| g = Git.clone(@wbare, 'stash_test') Dir.chdir('stash_test') do assert_equal(0, g.branch.stashes.size) new_file('test-file1', 'blahblahblah1') new_file('test-file2', 'blahblahblah2') assert(g.status.untracked.assoc('test-file1')) g.add assert(g.status.added.assoc('test-file1')) g.branch.stashes.save('testing') g.reset assert_nil(g.status.untracked.assoc('test-file1')) assert_nil(g.status.added.assoc('test-file1')) g.branch.stashes.apply assert(g.status.added.assoc('test-file1')) end end end def test_stashes_all in_temp_dir do |path| g = Git.clone(@wbare, 'stash_test') Dir.chdir('stash_test') do assert_equal(0, g.branch.stashes.size) new_file('test-file1', 'blahblahblah1') new_file('test-file2', 'blahblahblah2') assert(g.status.untracked.assoc('test-file1')) g.add assert(g.status.added.assoc('test-file1')) g.branch.stashes.save('testing-stash-all') stashes = g.branch.stashes.all assert(stashes[0].include?('testing-stash-all')) end end end endruby-git-1.6.0/tests/units/test_tree_ops.rb0000644000175000017500000000731413615571573021224 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestTreeOps < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) end def test_read_tree in_temp_dir do g = Git.clone(@wbare, 'test') g.chdir do g.branch('testbranch1').in_branch('tb commit 1') do new_file('test-file1', 'blahblahblah2') g.add true end g.branch('testbranch2').in_branch('tb commit 2') do new_file('test-file2', 'blahblahblah3') g.add true end g.branch('testbranch3').in_branch('tb commit 3') do new_file('test-file3', 'blahblahblah4') g.add true end # test some read-trees tr = g.with_temp_index do g.read_tree('testbranch1') g.read_tree('testbranch2', :prefix => 'b2/') g.read_tree('testbranch3', :prefix => 'b2/b3/') index = g.ls_files assert(index['b2/test-file2']) assert(index['b2/b3/test-file3']) g.write_tree end assert_equal('2423ef1b38b3a140bbebf625ba024189c872e08b', tr) # only prefixed read-trees tr = g.with_temp_index do g.add # add whats in our working tree g.read_tree('testbranch1', :prefix => 'b1/') g.read_tree('testbranch3', :prefix => 'b2/b3/') index = g.ls_files assert(index['example.txt']) assert(index['b1/test-file1']) assert(!index['b2/test-file2']) assert(index['b2/b3/test-file3']) g.write_tree end assert_equal('aa7349e1cdaf4b85cc6a6a0cf4f9b3f24879fa42', tr) # new working directory too tr = nil g.with_temp_working do tr = g.with_temp_index do begin g.add rescue Exception => e # Adding nothig is now validd on Git 1.7.x # If an error ocurres (Git 1.6.x) it MUST rise Git::GitExecuteError assert_equal(e.class, Git::GitExecuteError) end g.read_tree('testbranch1', :prefix => 'b1/') g.read_tree('testbranch3', :prefix => 'b1/b3/') index = g.ls_files assert(!index['example.txt']) assert(index['b1/test-file1']) assert(!index['b2/test-file2']) assert(index['b1/b3/test-file3']) g.write_tree end assert_equal('b40f7a9072cdec637725700668f8fdebe39e6d38', tr) end c = g.commit_tree(tr, :parents => 'HEAD') assert(c.commit?) assert_equal('b40f7a9072cdec637725700668f8fdebe39e6d38', c.gtree.sha) tmp = Tempfile.new('tesxt') tmppath = tmp.path tmp.close tmp.unlink g.with_index(tmppath) do g.read_tree('testbranch1', :prefix => 'b1/') g.read_tree('testbranch3', :prefix => 'b3/') index = g.ls_files assert(!index['b2/test-file2']) assert(index['b3/test-file3']) g.commit('hi') end assert(c.commit?) files = g.ls_files assert(!files['b1/example.txt']) g.branch('newbranch').update_ref(c) g.checkout('newbranch') assert(!files['b1/example.txt']) assert_equal('b40f7a9072cdec637725700668f8fdebe39e6d38', c.gtree.sha) g.with_temp_working do assert(!File.directory?('b1')) g.checkout_index assert(!File.directory?('b1')) g.checkout_index(:all => true) assert(File.directory?('b1')) end end end end end ruby-git-1.6.0/tests/units/test_git_path.rb0000644000175000017500000000203213615571573021173 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestGitPath < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) end def test_initalize_with_good_path_and_check_path path = Git::Path.new(@git.index.to_s, true) assert_equal @git.index.to_s, path.to_s end def test_initialize_with_bad_path_and_check_path assert_raises ArgumentError do Git::Path.new('/this path does not exist', true) end end def test_initialize_with_bad_path_and_no_check path = Git::Path.new('/this path does not exist', false) assert_equal '/this path does not exist', path.to_s end def test_readables assert(@git.dir.readable?) assert(@git.index.readable?) assert(@git.repo.readable?) end def test_readables_in_temp_dir in_temp_dir do |dir| FileUtils.cp_r(@wdir, 'test') g = Git.open(File.join(dir, 'test')) assert(g.dir.writable?) assert(g.index.writable?) assert(g.repo.writable?) end end endruby-git-1.6.0/tests/units/test_branch.rb0000644000175000017500000000601313615571573020634 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestBranch < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) @commit = @git.object('1cc8667014381') @tree = @git.object('1cc8667014381^{tree}') @blob = @git.object('v2.5:example.txt') @branches = @git.branches end def test_branches_all assert(@git.branches[:master].is_a?(Git::Branch)) assert(@git.branches.size > 5) end def test_branches_local bs = @git.branches.local assert(bs.size > 4) end def test_branches_remote bs = @git.branches.remote assert_equal(1, bs.size) end def test_branches_single branch = @git.branches[:test_object] assert_equal('test_object', branch.name) %w{working/master remotes/working/master}.each do |branch_name| branch = @git.branches[branch_name] assert_equal('master', branch.name) assert_equal('remotes/working/master', branch.full) assert_equal('working', branch.remote.name) assert_equal('+refs/heads/*:refs/remotes/working/*', branch.remote.fetch_opts) assert_equal('../working.git', branch.remote.url) end end def test_true_branch_contains? assert(@git.branch('git_grep').contains?('master')) end def test_false_branch_contains? assert(!@git.branch('master').contains?('git_grep')) end def test_branch_commit assert_equal(270, @git.branches[:test_branches].gcommit.size) end def test_branch_create_and_switch in_temp_dir do |path| g = Git.clone(@wbare, 'branch_test') Dir.chdir('branch_test') do assert(!g.branch('new_branch').current) g.branch('other_branch').create assert(!g.branch('other_branch').current) g.branch('new_branch').checkout assert(g.branch('new_branch').current) assert_equal(1, g.branches.select { |b| b.name == 'new_branch' }.size) new_file('test-file1', 'blahblahblah1') new_file('test-file2', 'blahblahblah2') new_file('.test-dot-file1', 'blahblahblahdot1') assert(g.status.untracked.assoc('test-file1')) assert(g.status.untracked.assoc('.test-dot-file1')) g.add(['test-file1', 'test-file2']) assert(!g.status.untracked.assoc('test-file1')) g.reset assert(g.status.untracked.assoc('test-file1')) assert(!g.status.added.assoc('test-file1')) assert_raise Git::GitExecuteError do g.branch('new_branch').delete end assert_equal(1, g.branches.select { |b| b.name == 'new_branch' }.size) g.branch('master').checkout g.branch('new_branch').delete assert_equal(0, g.branches.select { |b| b.name == 'new_branch' }.size) g.checkout('other_branch') assert(g.branch('other_branch').current) g.checkout('master') assert(!g.branch('other_branch').current) g.checkout(g.branch('other_branch')) assert(g.branch('other_branch').current) end end end end ruby-git-1.6.0/tests/units/test_config.rb0000644000175000017500000000310213615571573020640 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestConfig < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) end def test_config c = @git.config assert_equal('Scott Chacon', c['user.name']) assert_equal('false', c['core.bare']) end def test_read_config assert_equal('Scott Chacon', @git.config('user.name')) assert_equal('false', @git.config('core.bare')) end def test_set_config in_temp_dir do |path| g = Git.clone(@wbare, 'bare') assert_not_equal('bully', g.config('user.name')) g.config('user.name', 'bully') assert_equal('bully', g.config('user.name')) end end def test_env_config with_custom_env_variables do begin assert_equal(Git::Base.config.binary_path, 'git') assert_equal(Git::Base.config.git_ssh, nil) ENV['GIT_PATH'] = '/env/bin' ENV['GIT_SSH'] = '/env/git/ssh' assert_equal(Git::Base.config.binary_path, '/env/bin/git') assert_equal(Git::Base.config.git_ssh, '/env/git/ssh') Git.configure do |config| config.binary_path = '/usr/bin/git' config.git_ssh = '/path/to/ssh/script' end assert_equal(Git::Base.config.binary_path, '/usr/bin/git') assert_equal(Git::Base.config.git_ssh, '/path/to/ssh/script') @git.log ensure ENV['GIT_SSH'] = nil ENV['GIT_PATH'] = nil Git.configure do |config| config.binary_path = nil config.git_ssh = nil end end end end end ruby-git-1.6.0/tests/units/test_tags.rb0000644000175000017500000000444113615571573020340 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestTags < Test::Unit::TestCase def setup set_file_paths end def test_tags in_temp_dir do |path| r1 = Git.clone(@wbare, 'repo1') r2 = Git.clone(@wbare, 'repo2') r1.config('user.name', 'Test User') r1.config('user.email', 'test@email.com') r2.config('user.name', 'Test User') r2.config('user.email', 'test@email.com') assert_raise Git::GitTagNameDoesNotExist do r1.tag('first') end r1.add_tag('first') r1.chdir do new_file('new_file', 'new content') end r1.add r1.commit('my commit') r1.add_tag('second') assert(r1.tags.any?{|t| t.name == 'first'}) r2.add_tag('third') assert(r2.tags.any?{|t| t.name == 'third'}) assert(r2.tags.none?{|t| t.name == 'second'}) assert_raise RuntimeError do r2.add_tag('fourth', {:a => true}) end r2.add_tag('fourth', {:a => true, :m => 'test message'}) assert(r2.tags.any?{|t| t.name == 'fourth'}) r2.add_tag('fifth', r2.tags.detect{|t| t.name == 'third'}.objectish) assert(r2.tags.detect{|t| t.name == 'third'}.objectish == r2.tags.detect{|t| t.name == 'fifth'}.objectish) assert_raise Git::GitExecuteError do r2.add_tag('third') end r2.add_tag('third', {:f => true}) r2.delete_tag('third') assert_raise Git::GitTagNameDoesNotExist do r2.tag('third') end tag1 = r2.tag('fourth') assert_true(tag1.annotated?) assert_equal(tag1.tagger.class, Git::Author) assert_equal(tag1.tagger.name, 'Test User') assert_equal(tag1.tagger.email, 'test@email.com') assert_true((Time.now - tag1.tagger.date) < 10) assert_equal(tag1.message, 'test message') tag2 = r2.tag('fifth') assert_false(tag2.annotated?) assert_equal(tag2.tagger, nil) assert_equal(tag2.message, nil) end end def test_tag_message_not_prefixed_with_space in_temp_dir do |path| repo = Git.clone(@wbare, 'repo1') repo.add_tag('donkey', :annotated => true, :message => 'hello') tag = repo.tag('donkey') assert_equal(tag.message, 'hello') end end end ruby-git-1.6.0/tests/units/test_base.rb0000644000175000017500000000634313615571573020317 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestBase < Test::Unit::TestCase def setup set_file_paths end def test_add in_temp_dir do |path| git = Git.clone(@wdir, 'test_add') create_file('test_add/test_file_1', 'content tets_file_1') create_file('test_add/test_file_2', 'content test_file_2') create_file('test_add/test_file_3', 'content test_file_3') create_file('test_add/test_file_4', 'content test_file_4') create_file('test_add/test file with \' quote', 'content test_file_4') assert(!git.status.added.assoc('test_file_1')) # Adding a single file, usign String git.add('test_file_1') assert(git.status.added.assoc('test_file_1')) assert(!git.status.added.assoc('test_file_2')) # Adding a single file, using Array git.add(['test_file_2']) assert(git.status.added.assoc('test_file_2')) assert(!git.status.added.assoc('test_file_3')) assert(!git.status.added.assoc('test_file_4')) # Adding multiple files, using Array git.add(['test_file_3','test_file_4', 'test file with \' quote']) assert(git.status.added.assoc('test_file_3')) assert(git.status.added.assoc('test_file_4')) assert(git.status.added.assoc('test file with \' quote')) git.commit('test_add commit #1') assert(git.status.added.empty?) delete_file('test_add/test_file_3') update_file('test_add/test_file_4', 'content test_file_4 update #1') create_file('test_add/test_file_5', 'content test_file_5') # Adding all files (new, updated or deleted), using :all git.add(:all => true) assert(git.status.deleted.assoc('test_file_3')) assert(git.status.changed.assoc('test_file_4')) assert(git.status.added.assoc('test_file_5')) git.commit('test_add commit #2') assert(git.status.deleted.empty?) assert(git.status.changed.empty?) assert(git.status.added.empty?) delete_file('test_add/test_file_4') update_file('test_add/test_file_5', 'content test_file_5 update #1') create_file('test_add/test_file_6', 'content test_fiile_6') # Adding all files (new or updated), without params git.add assert(git.status.deleted.assoc('test_file_4')) assert(git.status.changed.assoc('test_file_5')) assert(git.status.added.assoc('test_file_6')) git.commit('test_add commit #3') assert(git.status.changed.empty?) assert(git.status.added.empty?) end end def test_commit in_temp_dir do |path| git = Git.clone(@wdir, 'test_commit') create_file('test_commit/test_file_1', 'content tets_file_1') create_file('test_commit/test_file_2', 'content test_file_2') git.add('test_file_1') git.add('test_file_2') base_commit_id = git.log[0].objectish git.commit("Test Commit") original_commit_id = git.log[0].objectish create_file('test_commit/test_file_3', 'content test_file_3') git.add('test_file_3') git.commit(nil, :amend => true) assert(git.log[0].objectish != original_commit_id) assert(git.log[1].objectish == base_commit_id) end end end ruby-git-1.6.0/tests/units/test_object.rb0000644000175000017500000001034313615571573020646 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestObject < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) @commit = @git.gcommit('1cc8667014381') @tree = @git.gtree('1cc8667014381^{tree}') @blob = @git.gblob('v2.5:example.txt') end def test_sha_state o = @git.object('HEAD') original_sha = o.sha o.date assert_equal(original_sha, o.sha) end def test_commit o = @git.gcommit('1cc8667014381') assert(o.is_a?(Git::Object::Commit)) assert(o.commit?) assert(!o.tag?) assert_equal('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', o.gtree.to_s) assert_equal('546bec6f8872efa41d5d97a369f669165ecda0de', o.parent.sha) assert_equal(1, o.parents.size) assert_equal('scott Chacon', o.author.name) assert_equal('schacon@agadorsparticus.corp.reactrix.com', o.author.email) assert_equal('11-08-07', o.author.date.getutc.strftime("%m-%d-%y")) assert_equal('11-08-07', o.author_date.getutc.strftime("%m-%d-%y")) assert_equal('scott Chacon', o.committer.name) assert_equal('11-08-07', o.committer_date.getutc.strftime("%m-%d-%y")) assert_equal('11-08-07', o.date.getutc.strftime("%m-%d-%y")) assert_equal('test', o.message) assert_equal('tags/v2.5', o.parent.name) assert_equal('tags/v2.5~1', o.parent.parent.name) assert_equal('tags/v2.5~2', o.parent.parent.parent.name) o = @git.gcommit('HEAD') assert(o.is_a?(Git::Object::Commit)) assert(o.commit?) o = @git.gcommit('test_object') assert(o.is_a?(Git::Object::Commit)) assert(o.commit?) end def test_commit_contents o = @git.gcommit('1cc8667014381') assert_equal('tree 94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', o.contents_array[0]) assert_equal('parent 546bec6f8872efa41d5d97a369f669165ecda0de', o.contents_array[1]) end def test_object_to_s assert_equal('1cc8667014381e2788a94777532a788307f38d26', @commit.sha) assert_equal('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', @tree.sha) assert_equal('ba492c62b6227d7f3507b4dcc6e6d5f13790eabf', @blob.sha) end def test_object_size assert_equal(265, @commit.size) assert_equal(72, @tree.size) assert_equal(128, @blob.size) end def test_tree o = @git.gtree('1cc8667014381^{tree}') assert(o.is_a?(Git::Object::Tree)) assert(o.tree?) o = @git.gtree('v2.7^{tree}') assert_equal(2, o.children.size) assert_equal(1, o.blobs.size) assert_equal(1, o.subtrees.size) assert_equal(1, o.trees['ex_dir'].blobs.size) assert_equal(2, o.full_tree.size) assert_equal("100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391\tex_dir/ex.txt", o.full_tree.first) assert_equal(2, o.depth) o = @git.gtree('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7') assert(o.is_a?(Git::Object::Tree)) assert(o.tree?) end def test_tree_contents o = @git.gtree('1cc8667014381^{tree}') assert_equal('040000 tree 6b790ddc5eab30f18cabdd0513e8f8dac0d2d3ed ex_dir', o.contents_array.first) end def test_blob o = @git.gblob('ba492c62b6') assert(o.is_a?(Git::Object::Blob)) assert(o.blob?) o = @git.gblob('v2.5:example.txt') assert(o.is_a?(Git::Object::Blob)) assert(o.blob?) end def test_blob_contents o = @git.gblob('v2.6:example.txt') assert_equal('replace with new text', o.contents) assert_equal('replace with new text', o.contents) # this should be cached # make sure the block is called block_called = false o.contents do |f| block_called = true assert_equal('replace with new text', f.read.chomp) end assert(block_called) end def test_revparse sha = @git.revparse('v2.6:example.txt') assert_equal('1f09f2edb9c0d9275d15960771b363ca6940fbe3', sha) end def test_grep g = @git.gtree('a3db7143944dcfa0').grep('search') # there assert_equal(3, g.to_a.flatten.size) assert_equal(1, g.size) assert_equal({}, @git.gtree('a3db7143944dcfa0').grep('34a566d193')) # not there g = @git.gcommit('gitsearch1').grep('search') # there assert_equal(8, g.to_a.flatten.size) assert_equal(2, g.size) g = @git.gcommit('gitsearch1').grep('search', 'scott/new*') # there assert_equal(3, g.to_a.flatten.size) assert_equal(1, g.size) end end ruby-git-1.6.0/tests/units/test_bare.rb0000644000175000017500000000245113615571573020312 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestBare < Test::Unit::TestCase def setup set_file_paths @git = Git.bare(@wbare) end def test_commit o = @git.object('1cc8667014381') assert(o.is_a?(Git::Object::Commit)) assert_equal('94c827875e2cadb8bc8d4cdd900f19aa9e8634c7', o.gtree.to_s) assert_equal('546bec6f8872efa41d5d97a369f669165ecda0de', o.parent.sha) assert_equal(1, o.parents.size) assert_equal('scott Chacon', o.author.name) assert_equal('schacon@agadorsparticus.corp.reactrix.com', o.author.email) assert_equal('11-08-07', o.author.date.getutc.strftime("%m-%d-%y")) assert_equal('11-08-07', o.author_date.getutc.strftime("%m-%d-%y")) assert_equal('scott Chacon', o.committer.name) assert_equal('11-08-07', o.committer_date.getutc.strftime("%m-%d-%y")) assert_equal('11-08-07', o.date.getutc.strftime("%m-%d-%y")) assert_equal('test', o.message) assert_equal('tags/v2.5', o.parent.name) assert_equal('tags/v2.5~1', o.parent.parent.name) assert_equal('tags/v2.5~2', o.parent.parent.parent.name) o = @git.object('HEAD') assert(o.is_a?(Git::Object::Commit)) assert(o.commit?) o = @git.object('test_object') assert(o.is_a?(Git::Object::Commit)) assert(o.commit?) end end ruby-git-1.6.0/tests/units/test_init.rb0000644000175000017500000000542513615571573020350 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestInit < Test::Unit::TestCase def setup set_file_paths end def test_open_simple g = Git.open(@wdir) assert_equal(g.dir.path, @wdir) assert_equal(g.repo.path, File.join(@wdir, '.git')) assert_equal(g.index.path, File.join(@wdir, '.git', 'index')) end def test_open_opts g = Git.open @wdir, :repository => @wbare, :index => @index assert_equal(g.repo.path, @wbare) assert_equal(g.index.path, @index) end def test_git_bare g = Git.bare @wbare assert_equal(g.repo.path, @wbare) end #g = Git.init # Git.init('project') # Git.init('/home/schacon/proj', # { :git_dir => '/opt/git/proj.git', # :index_file => '/tmp/index'} ) def test_git_init in_temp_dir do |path| repo = Git.init(path) assert(File.directory?(File.join(path, '.git'))) assert(File.exist?(File.join(path, '.git', 'config'))) assert_equal('false', repo.config('core.bare')) end end def test_git_init_bare in_temp_dir do |path| repo = Git.init(path, :bare => true) assert(File.directory?(File.join(path, '.git'))) assert(File.exist?(File.join(path, '.git', 'config'))) assert_equal('true', repo.config('core.bare')) end end def test_git_init_remote_git in_temp_dir do |dir| assert(!File.exist?(File.join(dir, 'config'))) in_temp_dir do |path| Git.init(path, :repository => dir) assert(File.exist?(File.join(dir, 'config'))) end end end def test_git_clone in_temp_dir do |path| g = Git.clone(@wbare, 'bare-co') assert(File.exist?(File.join(g.repo.path, 'config'))) assert(g.dir) end end def test_git_clone_with_branch in_temp_dir do |path| g = Git.clone(@wbare, 'clone-branch', :branch => 'test') assert_equal(g.current_branch, 'test') end end def test_git_clone_bare in_temp_dir do |path| g = Git.clone(@wbare, 'bare.git', :bare => true) assert(File.exist?(File.join(g.repo.path, 'config'))) assert_nil(g.dir) end end def test_git_clone_mirror in_temp_dir do |path| g = Git.clone(@wbare, 'bare.git', :mirror => true) assert(File.exist?(File.join(g.repo.path, 'config'))) assert_nil(g.dir) end end def test_git_clone_config in_temp_dir do |path| g = Git.clone(@wbare, 'config.git', :config => "receive.denyCurrentBranch=ignore") assert_equal('ignore', g.config['receive.denycurrentbranch']) assert(File.exist?(File.join(g.repo.path, 'config'))) assert(g.dir) end end # trying to open a git project using a bare repo - rather than using Git.repo def test_git_open_error assert_raise ArgumentError do Git.open @wbare end end end ruby-git-1.6.0/tests/units/test_diff_non_default_encoding.rb0000644000175000017500000000346013615571573024536 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestDiffWithNonDefaultEncoding < Test::Unit::TestCase def git_working_dir cwd = `pwd`.chomp if File.directory?(File.join(cwd, 'files')) test_dir = File.join(cwd, 'files') elsif File.directory?(File.join(cwd, '..', 'files')) test_dir = File.join(cwd, '..', 'files') elsif File.directory?(File.join(cwd, 'tests', 'files')) test_dir = File.join(cwd, 'tests', 'files') end create_temp_repo(File.expand_path(File.join(test_dir, 'encoding'))) end def create_temp_repo(clone_path) filename = 'git_test' + Time.now.to_i.to_s + rand(300).to_s.rjust(3, '0') @tmp_path = File.join("/tmp/", filename) FileUtils.mkdir_p(@tmp_path) FileUtils.cp_r(clone_path, @tmp_path) tmp_path = File.join(@tmp_path, File.basename(clone_path)) Dir.chdir(tmp_path) do FileUtils.mv('dot_git', '.git') end tmp_path end def setup @git = Git.open(git_working_dir) end def test_diff_with_greek_encoding d = @git.diff patch = d.patch assert(patch.include?("-Φθγητ οποÏτεÏε ιν ιδεÏιντ\n")) assert(patch.include?("+Φεθγιατ θÏβανιτασ ÏεπÏιμιqθε\n")) end def test_diff_with_japanese_and_korean_encoding d = @git.diff.path('test2.txt') patch = d.patch expected_patch = <<~PATCH.chomp diff --git a/test2.txt b/test2.txt index 87d9aa8..210763e 100644 --- a/test2.txt +++ b/test2.txt @@ -1,3 +1,3 @@ -é•ã„を生ã¿å‡ºã™ã‚µãƒ³ãƒ—ルテキスト -ã“れã¯1行目ã§ã™ -ã“ã‚ŒãŒæœ€å¾Œã®è¡Œã§ã™ +ì´ê²ƒì€ 파ì¼ì´ë‹¤ +ì´ê²ƒì€ ë‘ ë²ˆì§¸ 줄입니다 +ì´ê²ƒì´ 마지막 줄입니다 PATCH assert(patch.include?(expected_patch)) end end ruby-git-1.6.0/tests/units/test_index_ops.rb0000644000175000017500000001057613615571573021400 0ustar terceiroterceiro#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../test_helper' class TestIndexOps < Test::Unit::TestCase def setup set_file_paths @git = Git.open(@wdir) end def test_add in_temp_dir do |path| g = Git.clone(@wbare, 'new') Dir.chdir('new') do assert_equal('100644', g.status['example.txt'].mode_index) new_file('test-file', 'blahblahblah') assert(g.status.untracked.assoc('test-file')) g.add assert(g.status.added.assoc('test-file')) assert(!g.status.untracked.assoc('test-file')) assert(!g.status.changed.assoc('example.txt')) new_file('example.txt', 'hahahaha') assert(g.status.changed.assoc('example.txt')) g.add assert(g.status.changed.assoc('example.txt')) g.commit('my message') assert(!g.status.changed.assoc('example.txt')) assert(!g.status.added.assoc('test-file')) assert(!g.status.untracked.assoc('test-file')) assert_equal('hahahaha', g.status['example.txt'].blob.contents) end end end def test_clean in_temp_dir do |path| g = Git.clone(@wbare, 'clean_me') Dir.chdir('clean_me') do new_file('test-file', 'blahblahbal') new_file('ignored_file', 'ignored file contents') new_file('.gitignore', 'ignored_file') g.add g.commit("first commit") new_file('file-to-clean', 'blablahbla') FileUtils.mkdir_p("dir_to_clean") Dir.chdir('dir_to_clean') do new_file('clean-me-too', 'blablahbla') end assert(File.exist?('file-to-clean')) assert(File.exist?('dir_to_clean')) assert(File.exist?('ignored_file')) g.clean(:force => true) assert(!File.exist?('file-to-clean')) assert(File.exist?('dir_to_clean')) assert(File.exist?('ignored_file')) new_file('file-to-clean', 'blablahbla') g.clean(:force => true, :d => true) assert(!File.exist?('file-to-clean')) assert(!File.exist?('dir_to_clean')) assert(File.exist?('ignored_file')) g.clean(:force => true, :x => true) assert(!File.exist?('ignored_file')) end end end def test_revert in_temp_dir do |path| g = Git.clone(@wbare, 'new') Dir.chdir('new') do new_file('test-file', 'blahblahbal') g.add g.commit("first commit") first_commit = g.gcommit('HEAD') new_file('test-file2', 'blablahbla') g.add g.commit("second-commit") g.gcommit('HEAD') commits = g.log(10000).count g.revert(first_commit.sha) assert_equal(commits + 1, g.log(10000).count) assert(!File.exist?('test-file2')) end end end def test_add_array in_temp_dir do |path| g = Git.clone(@wbare, 'new') Dir.chdir('new') do new_file('test-file1', 'blahblahblah1') new_file('test-file2', 'blahblahblah2') assert(g.status.untracked.assoc('test-file1')) g.add(['test-file1', 'test-file2']) assert(g.status.added.assoc('test-file1')) assert(g.status.added.assoc('test-file1')) assert(!g.status.untracked.assoc('test-file1')) g.commit('my message') assert(!g.status.added.assoc('test-file1')) assert(!g.status.untracked.assoc('test-file1')) assert_equal('blahblahblah1', g.status['test-file1'].blob.contents) end end end def test_remove in_temp_dir do |path| g = Git.clone(@wbare, 'remove_test') Dir.chdir('remove_test') do assert(g.status['example.txt']) g.remove('example.txt') assert(g.status.deleted.assoc('example.txt')) g.commit('deleted file') assert(!g.status['example.txt']) end end end def test_reset in_temp_dir do |path| g = Git.clone(@wbare, 'reset_test') Dir.chdir('reset_test') do new_file('test-file1', 'blahblahblah1') new_file('test-file2', 'blahblahblah2') assert(g.status.untracked.assoc('test-file1')) g.add(['test-file1', 'test-file2']) assert(!g.status.untracked.assoc('test-file1')) g.reset assert(g.status.untracked.assoc('test-file1')) assert(!g.status.added.assoc('test-file1')) end end end end ruby-git-1.6.0/tests/all_tests.rb0000644000175000017500000000024213615571573017166 0ustar terceiroterceiroDir.chdir(File.dirname(__FILE__)) do Dir.glob('**/test_*.rb') do |test_case| require "#{File.expand_path(File.dirname(__FILE__))}/#{test_case}" end end ruby-git-1.6.0/tests/files/0000755000175000017500000000000013615571573015753 5ustar terceiroterceiroruby-git-1.6.0/tests/files/index0000644000175000017500000000040013615571573016777 0ustar terceiroterceiroDIRCG2]dG2]dpÏ¢¤õõæâ›²ÑÖCK‹)®wZØÂäŒS‘ ex_dir/ex.txtG2]YG2]YpÏ ¤õõæâ›²ÑÖCK‹)®wZØÂäŒS‘ example.txtTREE82 1 ÀØFÏ€°yçcã\:òsðÊex_dir1 0 ky Ü^«0ñŒ«ÝèøÚÀÒÓ퉙<àh`!µ,>G,2"ØÖruby-git-1.6.0/tests/files/working.git/0000755000175000017500000000000013615571573020215 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/refs/0000755000175000017500000000000013615571573021154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/refs/heads/0000755000175000017500000000000013615571573022240 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/refs/heads/test_branches0000644000175000017500000000005113615571573025003 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working.git/refs/heads/test0000644000175000017500000000005113615571573023136 0ustar terceiroterceiro1cc8667014381e2788a94777532a788307f38d26 ruby-git-1.6.0/tests/files/working.git/refs/heads/master0000644000175000017500000000005113615571573023452 0ustar terceiroterceiro5e392652a881999392c2757cf9b783c5d47b67f7 ruby-git-1.6.0/tests/files/working.git/refs/heads/test_object0000644000175000017500000000005113615571573024464 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working.git/refs/heads/git_grep0000644000175000017500000000005113615571573023757 0ustar terceiroterceiro5e53019b3238362144c2766f02a2c00d91fcc023 ruby-git-1.6.0/tests/files/working.git/refs/tags/0000755000175000017500000000000013615571573022112 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/refs/tags/v2.70000644000175000017500000000005113615571573022525 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working.git/refs/tags/gitsearch10000644000175000017500000000005113615571573024063 0ustar terceiroterceiro935badc874edd62a8629aaf103418092c73f0a56 ruby-git-1.6.0/tests/files/working.git/refs/tags/v2.60000644000175000017500000000005113615571573022524 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working.git/refs/tags/v2.50000644000175000017500000000005113615571573022523 0ustar terceiroterceiro546bec6f8872efa41d5d97a369f669165ecda0de ruby-git-1.6.0/tests/files/working.git/refs/tags/v2.80000644000175000017500000000005113615571573022526 0ustar terceiroterceiro5e53019b3238362144c2766f02a2c00d91fcc023 ruby-git-1.6.0/tests/files/working.git/hooks/0000755000175000017500000000000013615571573021340 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/hooks/applypatch-msg0000644000175000017500000000067113615571573024220 0ustar terceiroterceiro#!/bin/sh # # An example hook script to check the commit log message taken by # applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. The hook is # allowed to edit the commit message file. # # To enable this hook, make this file executable. . git-sh-setup test -x "$GIT_DIR/hooks/commit-msg" && exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} : ruby-git-1.6.0/tests/files/working.git/hooks/post-update0000644000175000017500000000031713615571573023531 0ustar terceiroterceiro#!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, make this file executable by "chmod +x post-update". exec git-update-server-info ruby-git-1.6.0/tests/files/working.git/hooks/pre-commit0000644000175000017500000000323713615571573023344 0ustar terceiroterceiro#!/bin/sh # # An example hook script to verify what is about to be committed. # Called by git-commit with no arguments. The hook should # exit with non-zero status after issuing an appropriate message if # it wants to stop the commit. # # To enable this hook, make this file executable. # This is slightly modified from Andrew Morton's Perfect Patch. # Lines you introduce should not have trailing whitespace. # Also check for an indentation that has SP before a TAB. if git-rev-parse --verify HEAD 2>/dev/null then git-diff-index -p -M --cached HEAD else # NEEDSWORK: we should produce a diff with an empty tree here # if we want to do the same verification for the initial import. : fi | perl -e ' my $found_bad = 0; my $filename; my $reported_filename = ""; my $lineno; sub bad_line { my ($why, $line) = @_; if (!$found_bad) { print STDERR "*\n"; print STDERR "* You have some suspicious patch lines:\n"; print STDERR "*\n"; $found_bad = 1; } if ($reported_filename ne $filename) { print STDERR "* In $filename\n"; $reported_filename = $filename; } print STDERR "* $why (line $lineno)\n"; print STDERR "$filename:$lineno:$line\n"; } while (<>) { if (m|^diff --git a/(.*) b/\1$|) { $filename = $1; next; } if (/^@@ -\S+ \+(\d+)/) { $lineno = $1 - 1; next; } if (/^ /) { $lineno++; next; } if (s/^\+//) { $lineno++; chomp; if (/\s$/) { bad_line("trailing whitespace", $_); } if (/^\s* /) { bad_line("indent SP followed by a TAB", $_); } if (/^(?:[<>=]){7}/) { bad_line("unresolved merge conflict", $_); } } } exit($found_bad); ' ruby-git-1.6.0/tests/files/working.git/hooks/post-commit0000644000175000017500000000023013615571573023531 0ustar terceiroterceiro#!/bin/sh # # An example hook script that is called after a successful # commit is made. # # To enable this hook, make this file executable. : Nothing ruby-git-1.6.0/tests/files/working.git/hooks/update0000644000175000017500000000370113615571573022546 0ustar terceiroterceiro#!/bin/sh # # An example hook script to blocks unannotated tags from entering. # Called by git-receive-pack with arguments: refname sha1-old sha1-new # # To enable this hook, make this file executable by "chmod +x update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "Usage: $0 " >&2 exit 1 fi # --- Config allowunannotated=$(git-repo-config --bool hooks.allowunannotated) # check for no description projectdesc=$(sed -e '1p' "$GIT_DIR/description") if [ -z "$projectdesc" -o "$projectdesc" = "Unnamed repository; edit this file to name it for gitweb" ]; then echo "*** Project description file hasn't been set" >&2 exit 1 fi # --- Check types # if $newrev is 0000...0000, it's a commit to delete a branch if [ "$newrev" = "0000000000000000000000000000000000000000" ]; then newrev_type=commit else newrev_type=$(git-cat-file -t $newrev) fi case "$refname","$newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname=${refname##refs/tags/} if [ "$allowunannotated" != "true" ]; then echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag ;; refs/heads/*,commit) # branch ;; refs/remotes/*,commit) # tracking branch ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 ruby-git-1.6.0/tests/files/working.git/hooks/post-receive0000644000175000017500000000077613615571573023702 0ustar terceiroterceiro#!/bin/sh # # An example hook script for the post-receive event # # This script is run after receive-pack has accepted a pack and the # repository has been updated. It is passed arguments in through stdin # in the form # # For example: # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master # # see contrib/hooks/ for an sample, or uncomment the next line (on debian) # #. /usr/share/doc/git-core/contrib/hooks/post-receive-email ruby-git-1.6.0/tests/files/working.git/hooks/commit-msg0000644000175000017500000000141413615571573023337 0ustar terceiroterceiro#!/bin/sh # # An example hook script to check the commit log message. # Called by git-commit with one argument, the name of the file # that has the commit message. The hook should exit with non-zero # status after issuing an appropriate message if it wants to stop the # commit. The hook is allowed to edit the commit message file. # # To enable this hook, make this file executable. # Uncomment the below to add a Signed-off-by line to the message. # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" # This example catches duplicate Signed-off-by lines. test "" = "$(grep '^Signed-off-by: ' "$1" | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { echo >&2 Duplicate Signed-off-by lines. exit 1 } ruby-git-1.6.0/tests/files/working.git/hooks/pre-rebase0000644000175000017500000001024613615571573023313 0ustar terceiroterceiro#!/bin/sh # # Copyright (c) 2006 Junio C Hamano # publish=next basebranch="$1" if test "$#" = 2 then topic="refs/heads/$2" else topic=`git symbolic-ref HEAD` fi case "$basebranch,$topic" in master,refs/heads/??/*) ;; *) exit 0 ;# we do not interrupt others. ;; esac # Now we are dealing with a topic branch being rebased # on top of master. Is it OK to rebase it? # Is topic fully merged to master? not_in_master=`git-rev-list --pretty=oneline ^master "$topic"` if test -z "$not_in_master" then echo >&2 "$topic is fully merged to master; better remove it." exit 1 ;# we could allow it, but there is no point. fi # Is topic ever merged to next? If so you should not be rebasing it. only_next_1=`git-rev-list ^master "^$topic" ${publish} | sort` only_next_2=`git-rev-list ^master ${publish} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git-rev-list "^$topic" master` if test -z "$not_in_topic" then echo >&2 "$topic is already up-to-date with master" exit 1 ;# we could allow it, but there is no point. else exit 0 fi else not_in_next=`git-rev-list --pretty=oneline ^${publish} "$topic"` perl -e ' my $topic = $ARGV[0]; my $msg = "* $topic has commits already merged to public branch:\n"; my (%not_in_next) = map { /^([0-9a-f]+) /; ($1 => 1); } split(/\n/, $ARGV[1]); for my $elem (map { /^([0-9a-f]+) (.*)$/; [$1 => $2]; } split(/\n/, $ARGV[2])) { if (!exists $not_in_next{$elem->[0]}) { if ($msg) { print STDERR $msg; undef $msg; } print STDERR " $elem->[1]\n"; } } ' "$topic" "$not_in_next" "$not_in_master" exit 1 fi exit 0 ################################################################ This sample hook safeguards topic branches that have been published from being rewound. The workflow assumed here is: * Once a topic branch forks from "master", "master" is never merged into it again (either directly or indirectly). * Once a topic branch is fully cooked and merged into "master", it is deleted. If you need to build on top of it to correct earlier mistakes, a new topic branch is created by forking at the tip of the "master". This is not strictly necessary, but it makes it easier to keep your history simple. * Whenever you need to test or publish your changes to topic branches, merge them into "next" branch. The script, being an example, hardcodes the publish branch name to be "next", but it is trivial to make it configurable via $GIT_DIR/config mechanism. With this workflow, you would want to know: (1) ... if a topic branch has ever been merged to "next". Young topic branches can have stupid mistakes you would rather clean up before publishing, and things that have not been merged into other branches can be easily rebased without affecting other people. But once it is published, you would not want to rewind it. (2) ... if a topic branch has been fully merged to "master". Then you can delete it. More importantly, you should not build on top of it -- other people may already want to change things related to the topic as patches against your "master", so if you need further changes, it is better to fork the topic (perhaps with the same name) afresh from the tip of "master". Let's look at this example: o---o---o---o---o---o---o---o---o---o "next" / / / / / a---a---b A / / / / / / / / c---c---c---c B / / / / \ / / / / b---b C \ / / / / / \ / ---o---o---o---o---o---o---o---o---o---o---o "master" A, B and C are topic branches. * A has one fix since it was merged up to "next". * B has finished. It has been fully merged up to "master" and "next", and is ready to be deleted. * C has not merged to "next" at all. We would want to allow C to be rebased, refuse A, and encourage B to be deleted. To compute (1): git-rev-list ^master ^topic next git-rev-list ^master next if these match, topic has not merged in next at all. To compute (2): git-rev-list master..topic if this is empty, it is fully merged to "master". ruby-git-1.6.0/tests/files/working.git/hooks/pre-applypatch0000644000175000017500000000060313615571573024213 0ustar terceiroterceiro#!/bin/sh # # An example hook script to verify what is about to be committed # by applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. # # To enable this hook, make this file executable. . git-sh-setup test -x "$GIT_DIR/hooks/pre-commit" && exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} : ruby-git-1.6.0/tests/files/working.git/HEAD0000644000175000017500000000002713615571573020640 0ustar terceiroterceiroref: refs/heads/master ruby-git-1.6.0/tests/files/working.git/description0000644000175000017500000000007213615571573022462 0ustar terceiroterceiroUnnamed repository; edit this file to name it for gitweb. ruby-git-1.6.0/tests/files/working.git/objects/0000755000175000017500000000000013615571573021646 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/1f/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/1f/09f2edb9c0d9275d15960771b363ca6940fbe30000644000175000017500000000004613615571573027236 0ustar terceiroterceiroxKÊÉOR02b(J-ÈILNU(Ï,ÉPÈK-W(I­(á›È 5ruby-git-1.6.0/tests/files/working.git/objects/1f/691b879df15cf6742502ffc59833b4a40e7aef0000644000175000017500000000016613615571573027334 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýbNqr~I ƒž‚°^ÿžÍ/”<&ΘÀkø±1 é´-}ruby-git-1.6.0/tests/files/working.git/objects/d7/0000755000175000017500000000000013615571573022160 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/d7/e844eec32d74a3d37c4ce02d7138658e1035d60000644000175000017500000000013013615571573027227 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðý?ïs߇9ûù̘¥÷=Ò®ùp|ÅÛ#{ruby-git-1.6.0/tests/files/working.git/objects/d7/875788aeafdd8e317880c00e3372f683cad91e0000644000175000017500000000013013615571573027331 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aHª˜~vñ¦Çk³—\.×ál}øßdú "½ruby-git-1.6.0/tests/files/working.git/objects/d7/d8a71a719e2a4ca501991a66dab47df804f6ad0000644000175000017500000000002413615571573027444 0ustar terceiroterceiroxKÊÉOR°4a0ä¢%Þá ruby-git-1.6.0/tests/files/working.git/objects/d1/0000755000175000017500000000000013615571573022152 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/d1/4cbc09cc34fb6450b2e96432102be51c8292b80000644000175000017500000000025013615571573027205 0ustar terceiroterceirox­ŽKÂ0 Yç¹(ã !$N⸺hS%®Äñ‰8»7o1®Ë2« ˆm"6—³‡LÄòÄ è/.Ç\Jð>fñšš¬j‘Ã}2a™€“ä$1‡X"bJ’":1´ë»6Û¹ªÚÇ›¸®öÚù7îô¢©¶>œ:óÞO\ÛvjB¬mþ ZnÖû gÈÁÝÅ93ÞQ®òO§!ój¾¼,W­ruby-git-1.6.0/tests/files/working.git/objects/01/0000755000175000017500000000000013615571573022066 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/01/dd46ebe07fc30c10c85c2e926c70f2d7058a6b0000644000175000017500000000013013615571573027345 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a0î;ÍØ|•ݳëí¶ÌíÓ¶ü|ÑÁÏñÉ"ruby-git-1.6.0/tests/files/working.git/objects/01/0b7b79019cb510d8c5849704fd10541655916d0000644000175000017500000000002413615571573026641 0ustar terceiroterceiroxKÊÉOR°0a0ä¢>aD Úruby-git-1.6.0/tests/files/working.git/objects/88/0000755000175000017500000000000013615571573022105 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/88/cf23d06f519bec7b824acd52b87a729555f2e70000644000175000017500000000025113615571573027331 0ustar terceiroterceirox­ŽM F]s .`Ãï ‰1&ždÀvÑÒÐiâñ%žÁÝ÷¾ÅË£¶® Kpá^Š4)esF[|Lh,To+èŠXƒsÖ$ObÇ^6–‹®)°@1fëjÎ6zª1%£1{ít ž<·.jÌò5#µMÞú'¾1·~ '/tµ¾O½ q_>ƒÖ‡Ô::ï"8%¯ê¦”ï(çòO§!Ë&¾’îXÁruby-git-1.6.0/tests/files/working.git/objects/c1/0000755000175000017500000000000013615571573022151 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/c1/3142dd26a1f6f38403a17f6c411cb621b9a1cd0000644000175000017500000000002413615571573027247 0ustar terceiroterceiroxKÊÉOR05b0ä"Ô%ruby-git-1.6.0/tests/files/working.git/objects/c1/8b4e9b0829411705d7fa9a1570a20d887808170000644000175000017500000000002313615571573026730 0ustar terceiroterceiroxKÊÉOR04c0äB…>Çÿruby-git-1.6.0/tests/files/working.git/objects/17/0000755000175000017500000000000013615571573022075 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/17/9ef0e0209e90af00f544ff414e0674dfb5f5c70000644000175000017500000000002413615571573027310 0ustar terceiroterceiroxKÊÉOR01`0ä"Á°Àruby-git-1.6.0/tests/files/working.git/objects/6d/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/6d/e8fb35c2e4a69addd030f2dbb4f73fd4742b5b0000644000175000017500000000002413615571573027660 0ustar terceiroterceiroxKÊÉOR°´`0ä¢5Ö |ruby-git-1.6.0/tests/files/working.git/objects/26/0000755000175000017500000000000013615571573022075 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/26/3e3c527004e7b742ed1f747c1bfb7e11825d7a0000644000175000017500000000013013615571573027215 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°IñWÚ¹ã톼:;S'žK $~î!¬ruby-git-1.6.0/tests/files/working.git/objects/a0/0000755000175000017500000000000013615571573022146 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a0/b3f35b3c39cfb12c4cc819bffe1cf54efb36420000644000175000017500000000024713615571573027661 0ustar terceiroterceirox­ŽQ Â0DýÎ)r˶i’ ˆždÙnl?ÚH²oð þÍ›ÇpÙ÷MíÂE«ˆ•Åû‘(ÎÀ!ÑMSÊ”3 .lÞTåP‹,NdFŠ…CŠ”’ˆs ã4û>-IÐЩk©¶qQµÏ•¸öÖøô¢¥ÔÖºñÙ.õ=T!Öº}:íw;Ž©ËR𓽘Þöç*ÿtš~d;ÌÒ¯Xúruby-git-1.6.0/tests/files/working.git/objects/8d/0000755000175000017500000000000013615571573022161 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/8d/ae07ab9d98b5fe04d4d7ed804cc36441b68dab0000644000175000017500000000025113615571573027614 0ustar terceiroterceirox­Ž] Â0„}Î)rKþ6M@Dð$ëvcûЦ¤[ðøÏàÛÌÀ||T×uíb¼HcÖÆDGS d9z331ÞxàlË#§vl¼‰¶àÇ„¶xÆÂ_¡¤lRòâT²™û3+4F’¶|z[ïÚÚ ä’¾šdŒêk7þ'Su‘eS_ñÜWüruby-git-1.6.0/tests/files/working.git/objects/8d/c79ae7616abf1e2d4d5d97d566f2b2f6cee0430000644000175000017500000000006013615571573027543 0ustar terceiroterceiroxKÊÉOR06a(J-ÈILNU(Ï,ÉPÈK-W(I­(QÐUHÉLK²‹K¸/Ðruby-git-1.6.0/tests/files/working.git/objects/46/0000755000175000017500000000000013615571573022077 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/46/00557506be20eb1501a4f15a52e684d4b9ee610000644000175000017500000000002413615571573027044 0ustar terceiroterceiroxKÊÉOR0³`0䢱W ruby-git-1.6.0/tests/files/working.git/objects/46/a60232117527e7b57ac0dd5ea4af2cd3fdb6960000644000175000017500000000012713615571573027357 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(að’³se˜¦cf¸¤²(ûÓ–ÌHŸ]ÌÓqruby-git-1.6.0/tests/files/working.git/objects/fe/0000755000175000017500000000000013615571573022240 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/fe/b2ccf88397c2d93f381176067be2727eba330b0000644000175000017500000000025113615571573027316 0ustar terceiroterceirox­ŽM …]s .  $Ƙx’é0µ]´4tL<¾è\½Ÿ¼|yT×uíNÒ˜u.0å!ï c ³õðUgaD›J€jÇÆ›h‡¾°6D³OŒ˜³õ†¦)º„#E…/™kÓUý˜‘ꦯýÌŸXj;:Szªm¿4F’¶¼{ZoÚÚìƒÏ@ŸM2Fõ¶?þ'Sõ#˦>uqWuruby-git-1.6.0/tests/files/working.git/objects/19/0000755000175000017500000000000013615571573022077 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/19/9d2f8e60fddd1bb2a1b0bddedde35e5aa8b03f0000644000175000017500000000013013615571573030063 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açž¾2ÀýTœe¸ÈŒ¨_o7¶}9 ãc"ruby-git-1.6.0/tests/files/working.git/objects/ae/0000755000175000017500000000000013615571573022233 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/ae/21cabd23aee99a719fc828977c0df9e8b193630000644000175000017500000000024713615571573027476 0ustar terceiroterceirox­ŽM Â0F]ç¹€%íÄ$"‚'™NFí¢MI¦àñ žÁÝ÷Çe]µS'­"Vx S¤@˜ ÄìÎ^ÓLOÈ3D„ÌNU6µžr¿<1ˆŸ™SôœcŸR– QÐa0tè»TÛ¸¨ÚÇ›¸löÚøîô¢\jëL]øh—ºUˆµ.ŸÞÖ›Gô¢=»äœék7Wù'Ót‘e3_ø«Xruby-git-1.6.0/tests/files/working.git/objects/87/0000755000175000017500000000000013615571573022104 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/87/c56502c73149f006631129f85dff697e0003560000644000175000017500000000025213615571573026603 0ustar terceiroterceirox­ŽQ Â0DýÎ)rKÒ¦Ù,ˆžd»ÝØ~´‘toô þÍ ÇpÙ¶UmãI«ˆvsï0 8CFï$q <3†„©O 9ŒæIUvµ¦°áø ’ŸÙO±Ÿ ’xÈCDC/]JµU{_ˆËn/ÿÂ4—z4§®ü::.õÙU!Öº¾[Û®Ö{ cÀ8‚=»äœik{®òO§iGÖÝ|8|W3ruby-git-1.6.0/tests/files/working.git/objects/e8/0000755000175000017500000000000013615571573022162 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/e8/183f05f5db68b3934e93f4bf6bed2bb664e0b50000644000175000017500000000002213615571573027457 0ustar terceiroterceiroxKÊÉOR0c0äA&§ruby-git-1.6.0/tests/files/working.git/objects/e8/bd03b163f82fba4560c11839d49361a78dec850000644000175000017500000000013013615571573027230 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aè²ßî>ÃúÓò/ï…³¾ì?_9yádvÿÈ#ruby-git-1.6.0/tests/files/working.git/objects/2e/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/2e/20132e8fd40cb3e82248919a10900d31f1816a0000644000175000017500000000006513615571573026764 0ustar terceiroterceirox+)JMU06c040031Q(I­(Ñ+©(aXùèævéÄTÃ^©ë¢§k/½øéôdQ§9ruby-git-1.6.0/tests/files/working.git/objects/2e/939fd37bbd2da971faa27c3e3de7d5aad405070000644000175000017500000000025313615571573027605 0ustar terceiroterceirox­ŽAnà E»æ\ 0€AŠªH9É0 6K=~PÏÐÝñô¨ïû&ÚÅø%ƒY¯ E,ÑÓêkp-¯Pm¢j3Ø„©fdÇêƒÑh 42µby¢dsi-µà¹ˆÞ)¼äÕ‡>©‹èç ©ú~ÒßxàÖ>Îé”®s¡>ÞË`$Ûï¤ý[[›}ð9§o&£æ;Ë…ÿÓ©fÈv¨°*X÷ruby-git-1.6.0/tests/files/working.git/objects/f5/0000755000175000017500000000000013615571573022160 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/f5/501de98279c6454f510188873476f3ead0cee60000644000175000017500000000025113615571573027116 0ustar terceiroterceirox­ŽQ à Dûí)¼@ƒ‰ºF(¥Ð“¬«¶~$Ý@_éú73 GuÛ ËàÂ-%l\3i ΨÀhHÁfƒÞics «‚Åzq`K;KÔ4gN9C‘<¢÷+¿&ŒòìÞü®MvªÌòùFª»¼uú…¾0ÖÖ“ }¢ÚŽ©%$nå3Úv—óì5~É«Z•cæœþÉC¤ìâ çóY-ruby-git-1.6.0/tests/files/working.git/objects/5a/0000755000175000017500000000000013615571573022153 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/5a/28efd2fcf55b7b58eb7cc66b5db836155bc2bb0000644000175000017500000000013013615571573027667 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aŸ÷ἠ뾺üwôc+¹¿õëqöÈ"Ôruby-git-1.6.0/tests/files/working.git/objects/a9/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a9/e2f17562ae78a75dc855bb3dc9e87364195dcf0000644000175000017500000000002313615571573027415 0ustar terceiroterceiroxKÊÉOR04b0äB@/…ruby-git-1.6.0/tests/files/working.git/objects/a9/e2d9b71b616531f04a65ae5b972ba5d1f2cb930000644000175000017500000000007213615571573027361 0ustar terceiroterceiroxKÊÉOR01gÈHÍÉÉç*ÉÈ,VÈ,æJTHËÌIrK@܂҅ŒÔ" @¾BqjbQ2÷ë+ruby-git-1.6.0/tests/files/working.git/objects/ab/0000755000175000017500000000000013615571573022230 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/ab/16bc1812fd6226780a841300a2432dfd0c67190000644000175000017500000000013013615571573027032 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aø³eþÊ)!?X*g qMz»gI{åjþµ"§ruby-git-1.6.0/tests/files/working.git/objects/4b/0000755000175000017500000000000013615571573022153 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/4b/7c90536eaa830d8c1f6ff49a7885b581d6acef0000644000175000017500000000025413615571573027474 0ustar terceiroterceirox­ŽAŠÃ0 E»ö)|)r,Ë6”a`N¢(J›Eââ¨0ÇÓ3t÷ß_<ž´}ßÌODëª>Ç9ä€ 2 2Æk]KAœ(–º* ,)¸'w=Ì(hˆ1Ì¡`,ë1sž(/댜%/…¿ìѺ?¥™ùßK;üí”÷øá;/­ŸÃi›¼Î«´þ¼ve±¾ý Ú¿}VJÅApã妟tº²î~*Vfruby-git-1.6.0/tests/files/working.git/objects/cf/0000755000175000017500000000000013615571573022236 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/cf/b9952c3a28831144a0fac7ea5a2d8517f466c40000644000175000017500000000013013615571573027301 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a{lÜ/¸åÿñ ?®Þ.-X ïõ"Yruby-git-1.6.0/tests/files/working.git/objects/cf/7135368cc3bf4920ceeaeebd083e098cfad3550000644000175000017500000000025113615571573027611 0ustar terceiroterceirox­ŽK 1D]ç¹€’_§ ˆž¤íîÑYÌdÈDðøÏப ë²Ì݆œ½©Zdâ4|IÅÀTCpSNàsBtf£¦ë8j‰e’ˆ‡¡‚~" ÈQ£( IràÐл¿j³;×ÞíýE\W{Ùùnô$©mÌ>ó{?qmÛ©)qoóg´åj½/ RÉíÑ3cæ]ÿÉ4Cd^ÍX7ruby-git-1.6.0/tests/files/working.git/objects/83/0000755000175000017500000000000013615571573022100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/83/c6a1f0d7d8df18a9d9bfe917707aec378684180000644000175000017500000000012713615571573027346 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a˜ñ;+#5yšu]¨nIaÄÚ=2Ú×îC!ruby-git-1.6.0/tests/files/working.git/objects/de/0000755000175000017500000000000013615571573022236 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/de/d54b45e4d49816f6d4256e74d45ba2bb3513570000644000175000017500000000013013615571573027232 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a`ûòb…Ã%û«§tFÅŠ5UI~ßø—"ruby-git-1.6.0/tests/files/working.git/objects/de/996da0ef3dcee1a28aef9243aa3e255eb825b50000644000175000017500000000002413615571573027665 0ustar terceiroterceiroxKÊÉOR°0c0ä¢z ruby-git-1.6.0/tests/files/working.git/objects/a4/0000755000175000017500000000000013615571573022152 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a4/4a5e945176ff31be83ffca3e7c68a8b6a45ea50000644000175000017500000000025413615571573027544 0ustar terceiroterceirox­ŽAnÄ E»æ\ #iTUêIÛt²HÔãõ Ýý÷Oûqìæ—œßl¨ú9´ (EªR·¦’rÄ’K‚âž4ô4¯17\b© HFFY`×)Ù@kH ›£—=úðw3ÿõ î§¿_ü7>雤k:mç×uã>ž·¡Ä6öŸILJ¨iM5ÇÕ¿‡‚›ï,7ýO§›!ûé~´;W˜ruby-git-1.6.0/tests/files/working.git/objects/50/0000755000175000017500000000000013615571573022072 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/50/3d77289b054742f507d8a8ce7cc51d3841d5b90000644000175000017500000000013013615571573027100 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØ®ònB®jâ!Ž]“¼îr®žzf3æ±!Fruby-git-1.6.0/tests/files/working.git/objects/d6/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/d6/f31c35d7e010e50568c0d605227028aa7bac660000644000175000017500000000025113615571573027124 0ustar terceiroterceirox­ŽA Â0E]ç¹€’I'i "‚'™L3ÚE›’Žàñ žÁÝñx\×uQëc^Äu³×ƒãNOšk;ºS~®m¿´B¬mùtZo`€SÄhÏ.9gúÛ˵üÓizȲ™/‰NX»ruby-git-1.6.0/tests/files/working.git/objects/d6/a3aab3e38bc16688b4e636a91e4624342108780000644000175000017500000000013013615571573027063 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(apé̱™œ»µoIë%á[;/Ú¥iêµ!Cruby-git-1.6.0/tests/files/working.git/objects/6e/0000755000175000017500000000000013615571573022160 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/6e/d281c757a969ffe22f3dcfa5830c532479c7260000644000175000017500000000002313615571573027252 0ustar terceiroterceiroxKÊÉOR0a0ä2äÖjruby-git-1.6.0/tests/files/working.git/objects/f7/0000755000175000017500000000000013615571573022162 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/f7/5f313ca30e534aa9c42463e85108e682d3a14a0000644000175000017500000000013013615571573027127 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a8hètWmá·Ï-Ì ëse¶)î\xóH!ðruby-git-1.6.0/tests/files/working.git/objects/6c/0000755000175000017500000000000013615571573022156 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/6c/2d312ebd67eed4c7e97e3923b3667764e7360e0000644000175000017500000000025313615571573027256 0ustar terceiroterceirox­ŽKnÃ0 D»Ö)tõ±E€œ„¦èÆ [L=~„ž¡»y³x3Üö}S‹)}i±àj Iyeì€sd”‚‰gX±Î3¥Å¼©Ë¡Öc()/¥rŒ~EŽHY|ŽÉ—ÌsrUh€¡K_­Û“›ª}¾ˆÛaï'ÿ…ýPmýNÝø:'ný=u!Ö¾ýÚ¿­s%ıÐÞ ˜ÑŽç*ÿé4ãÈv˜šWruby-git-1.6.0/tests/files/working.git/objects/49/0000755000175000017500000000000013615571573022102 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/49/b352299735fda3a333c69c6273178b0c3dfa080000644000175000017500000000002513615571573027072 0ustar terceiroterceiroxKÊÉOR040a0ä¢zeQruby-git-1.6.0/tests/files/working.git/objects/27/0000755000175000017500000000000013615571573022076 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/27/c0c003dda3e59ba236f53f6661faaf74432b5c0000644000175000017500000000013013615571573027343 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aˆÙËô\³~¶Éå"ç¥ w$—â* éruby-git-1.6.0/tests/files/working.git/objects/e3/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/e3/6f723934fd1d67c7d21538751f0b1e941141db0000644000175000017500000000025213615571573027070 0ustar terceiroterceirox­ŽM Â0F]ç¹€eÒL~Á“L'‰í¢MI§àñ žÁÝ÷¾Åãq]×EôèýEZÎÚcv#12xÃÅpÙ¸TRôe `’AµSË›hH#c(Æ&›ÉÂ1b‰Ù'ÁAà¨è”¹6}pѯ™¸nú~ðo<éM©¶£;eáó¸¶}h™XÚòé´>´17txóÖé+DÕß^.ùŸNÕC–M}tžWcruby-git-1.6.0/tests/files/working.git/objects/e3/ebef76525fe9e6e8dc739934a08512dff777c00000644000175000017500000000002413615571573027425 0ustar terceiroterceiroxKÊÉOR°0`0ä¢.1 `ruby-git-1.6.0/tests/files/working.git/objects/1c/0000755000175000017500000000000013615571573022151 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/1c/c8667014381e2788a94777532a788307f38d260000644000175000017500000000025213615571573026543 0ustar terceiroterceirox­ŽAŠÃ0 EgíSøìÔ–e(CaN¢HÊ$‹ÔÅVaŽßÐ3t÷ß[<>·ãØÍÏ¿¬«úšç‚%ëÌ$ .Œ’X¤†°ÆJTá’¸¸u½›Ï eXˬ+¥(Yj¡ Ô FÈÊBAÔÑÓ¶Öýàfæ7âv÷×Áïq£?’ÖÇÙ´ŸcâÖSWbëûÿIDZ¦ 1"úï€!¸ÓžÏM?Ùt¦ÃÜ e>X²ruby-git-1.6.0/tests/files/working.git/objects/1c/fcfba04eb4e461e9f930d22f528023ab1ddefc0000644000175000017500000000002513615571573027645 0ustar terceiroterceiroxKÊÉOR044a0ä¢7Ëyruby-git-1.6.0/tests/files/working.git/objects/a1/0000755000175000017500000000000013615571573022147 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a1/15413501949f4f09811fd1aaecf136c012c7d70000644000175000017500000000002513615571573027123 0ustar terceiroterceiroxKÊÉOR042a0ä8²¼¡ruby-git-1.6.0/tests/files/working.git/objects/a1/a3069efcc64330fb6c66004e69b870da3d61860000644000175000017500000000002413615571573027220 0ustar terceiroterceiroxKÊÉOR03b0ä¢u? Mruby-git-1.6.0/tests/files/working.git/objects/62/0000755000175000017500000000000013615571573022075 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/62/7e1097cda3b2e3ad6ba4d3772c0985e1ff349c0000644000175000017500000000002313615571573027365 0ustar terceiroterceiroxKÊÉOR04`0ä‚A(Hruby-git-1.6.0/tests/files/working.git/objects/62/bb94c53efae4d53fd0649d129baef4aca87af70000644000175000017500000000025113615571573027673 0ustar terceiroterceirox­ŽA E]s .`C§@!1ÆÄ“ à]´4tšx|‰gp÷ß_¼<ªëºˆï/Ò˜ut\¼w¹xNÙÇ`ÏÁR 8€ËÌ«o¢]2‰çŒ3QdÊÉdv%Œ&ƒJÊ@± ÂS޵郪ˆ~¾‘ê¦oýÆ_˜k;ºS:jÛ‡ÆHÒ–O§õ®Ç1Zg£·Q_M0Fõ·— ÿÓ©zȲ©/…ìYþruby-git-1.6.0/tests/files/working.git/objects/62/70c7f48ca41e6fb41b745ddc1bffe521d831940000644000175000017500000000025313615571573027371 0ustar terceiroterceirox­ŽM à …»ö^ Á¿ÑJ)ô$:[‰A'ÐãWz†.¼÷Öm+,÷nDÒ%ÔÉkœN!§ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a(<¹È¢ò?׉#³']dÿücN®´î$("¶ruby-git-1.6.0/tests/files/working.git/objects/15/0000755000175000017500000000000013615571573022073 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/15/378a1f3eafe4c5ab4f890883356df917ee55390000644000175000017500000000025113615571573027257 0ustar terceiroterceirox­ŽQ Â0DýÎ)r%i7éDO²Ùl´mJº‚Ç7xÿf†áñ¸®ë¢vˆñ¤MÄ&? L"D‘‹䑿&Ì ýU(!NÌNM6µ&‚D2—g‘ìòòè„èIh₆ÞúªÍ\UíãE\7{=øîô¤\ÛÑ™ºðû¸pmû¥ ±¶åÓÛz³ÞÏ`Ž€öìÐ9Ó×n®òO¦é"Ëf¾Ü{Yruby-git-1.6.0/tests/files/working.git/objects/15/34a65657edf4e5caaa5ce35652dca5e4c7d3160000644000175000017500000000013013615571573027437 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(axÉûB­¹øÉߨÆÛKbÝ߈5Úö¾!xruby-git-1.6.0/tests/files/working.git/objects/63/0000755000175000017500000000000013615571573022076 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/63/1446ec50808846e31fff786c065e69da2c673b0000644000175000017500000000025113615571573027112 0ustar terceiroterceirox­ŽM Â0F]ç¹€2ùo@Dð$ÓÉD»hSÒ<¾Á3¸ûÞ·xøƒÓg˜ÔxG¹ð?j„,›ú³‰X÷ruby-git-1.6.0/tests/files/working.git/objects/64/0000755000175000017500000000000013615571573022077 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/64/d0c52ac4c061cf1705e3005dfd86fb70374a140000644000175000017500000000013013615571573027175 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(ax!aÏúõvÆæÉ~“¿ìÏ~«½-åÁVúc#Iruby-git-1.6.0/tests/files/working.git/objects/cd/0000755000175000017500000000000013615571573022234 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/cd/0d59357b36a447ff27a7c176b46e0a319b42df0000644000175000017500000000002413615571573027305 0ustar terceiroterceiroxKÊÉOR°4`0䢩ó ˆruby-git-1.6.0/tests/files/working.git/objects/cd/4291452a61ff8b57cf5510addc8ddc5630748e0000644000175000017500000000013013615571573027366 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aX±}“¢«Ïõ=†›.NÚíÿ£ë—!Èruby-git-1.6.0/tests/files/working.git/objects/9b/0000755000175000017500000000000013615571573022160 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/9b/5149aa4ace4ef69461803b0ccbb21139e126260000644000175000017500000000013013615571573027204 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðòKÏú§õï¼²0ó„Ó.<»ÀëÁ!°ruby-git-1.6.0/tests/files/working.git/objects/be/0000755000175000017500000000000013615571573022234 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/be/b14380ef26540efcad06bedcd0e302b6bce70e0000644000175000017500000000025313615571573027717 0ustar terceiroterceirox­ŽKn!½æ\ ÍoÉŠ"å$ìYÌ`1m)Çò¼{¯¥â¾ï›hãEF­º!:²m!äLÁ¡ ¸”P2ÅRΑª/«zbÔCt´9'ÏÁՆɃkÅDŸ Ù”Q›c]Ð…—<úÐ'wýû÷CßN~ÜQú8§S6~Wîãy,cû›oÿÖDÉŸb0úˬƨIg¹ÔO:Õ ÙõïLY<ruby-git-1.6.0/tests/files/working.git/objects/f9/0000755000175000017500000000000013615571573022164 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/f9/bce8995109cfab475d043a7dd9156d5e574ed30000644000175000017500000000002413615571573027413 0ustar terceiroterceiroxKÊÉOR0·`0ä¢&— ,ruby-git-1.6.0/tests/files/working.git/objects/2c/0000755000175000017500000000000013615571573022152 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/2c/ef51480d44dcc262d16be2812c692d940d5f290000644000175000017500000000013013615571573027221 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸73wÁ{Ûsu½Ÿä¼ÊN5n‡êV A# ruby-git-1.6.0/tests/files/working.git/objects/24/0000755000175000017500000000000013615571573022073 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/24/5582a71306d7360e40c07cd7d849a1aa14a31e0000644000175000017500000000013013615571573027036 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aab°ˆ±æÖœSÕþæëœ•>F¿÷ÍÐ ­ruby-git-1.6.0/tests/files/working.git/objects/b0/0000755000175000017500000000000013615571573022147 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/b0/3003311ad3fa368b475df58390353868e13c910000644000175000017500000000025313615571573026720 0ustar terceiroterceirox­ŽM Â0F]ç¹€’éä§"‚'I&‰vѦ¤#x|ƒgp÷½oñxÜÖu=y’^ŠOÅçd1[6ÄÙƒ@1$š'ogL6“… Õ{ÙDW°`êÐU_ftD%QrœóTS0ѱŠoyµ®n"úñŠÜ6}=ø7îñsëÇpÊÂïã­ï—^"K_>ƒÖ› ë,yúlfcÔxG¹”:ÕY6õ:¿W.ruby-git-1.6.0/tests/files/working.git/objects/b0/ee249c5e5cc9464f3bc0034ab05632dcb87a230000644000175000017500000000013013615571573027341 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØ6£ú ‚ÔÅé%GløV°÷ç^Ï> ï!!zruby-git-1.6.0/tests/files/working.git/objects/45/0000755000175000017500000000000013615571573022076 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/45/20c29b885e9db9b0df3c7bab7870157e1d00c30000644000175000017500000000012313615571573027301 0ustar terceiroterceirox+)JMU07d040031QÈK-OËÌIeˆuckb7c±Ÿ÷V+Ù,M6cÒ …¥P%%©%z%% 6Ç¥…o²=q½T{ï¿Ã­‹b¶žÔ<µruby-git-1.6.0/tests/files/working.git/objects/45/b983be36b73c0788dc9cbcb76cbb80fc7bb0570000644000175000017500000000002213615571573027534 0ustar terceiroterceiroxKÊÉOR0fÈÈä£Îruby-git-1.6.0/tests/files/working.git/objects/48/0000755000175000017500000000000013615571573022101 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/48/bbf0db7e813affab7d8dd2842b8455ff9876be0000644000175000017500000000016613615571573027642 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aè=>ëybÖ~9]ߨéWÓ>múvî3Äœâäü’W…C³;âæîÜpߦzuEh,Ãa;ò0)ruby-git-1.6.0/tests/files/working.git/objects/53/0000755000175000017500000000000013615571573022075 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/53/a72df554e585e239e41cb1fc498d5aee9bb1640000644000175000017500000000025413615571573027406 0ustar terceiroterceirox­ŽKŠÃ0g­Sè1ú¶%C 'iµZ/l¹ süˆ9Ãì^½EQÔ÷}í¾d0ëµ%¨ظ„¶¦`s"À¹åÒV¬…WbõÆÁ‡hõä]jÕ%Ó¼ÇÂÆÈJv\"¦T­ÂK^}蓺ˆ~¾ú¡ï'ýþ`íãœNÙè:êã½ F’±ýNÚ¿µµ9Ä!X}3É5ßY.üŸN5C¶C}YÞX{ruby-git-1.6.0/tests/files/working.git/objects/5d/0000755000175000017500000000000013615571573022156 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/5d/4606820736043f9eed2a6336661d6892c820a50000644000175000017500000000004513615571573026657 0ustar terceiroterceiroxKÊÉOR02d¨Ì/UHNÌS/Q(NM,JÎPÈMUä‹Ú ruby-git-1.6.0/tests/files/working.git/objects/e5/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/e5/650a5c9c4b5a4415195bfb01d4d8dccbc8221b0000644000175000017500000000012713615571573027427 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(að97ÅhÓ–D#¯ÄDùDç!>7øäï 0ruby-git-1.6.0/tests/files/working.git/objects/e5/0fa6835cb99747346f19fea5f1ba939da4205f0000644000175000017500000000025113615571573027330 0ustar terceiroterceirox­Ž] Â0„}Î)reÓnó"‚'Ùî®Ú‡6’®àñ žÁ·™aøø¸®ëb~ˆñ`MÕ8My Fˆ’ÆŠÀX’d,ˆÒÔ½¨éf> )$š‹”ò˜x 42»É70:õ]ª=¸¨Ú相lövðo<èES©GsêÂçÑq©{W…Xëòio½[ïH0d{uèœi´•«üÓiZȲ™/†§W’ruby-git-1.6.0/tests/files/working.git/objects/7c/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/7c/60c6ab64c74d52f973d18cd1933318a8d9ae2e0000644000175000017500000000013013615571573027314 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°L{ù‹{þËËïõo-›lo˽Cû0ø}"ruby-git-1.6.0/tests/files/working.git/objects/7c/076f209839d7f910e8c84e41cc94898287ef450000644000175000017500000000013013615571573027057 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¨ßÿn~GÓÚ…o\LŠ^æy3ÇK â"¹ruby-git-1.6.0/tests/files/working.git/objects/7c/ac4f8d519d524ed025732ee220f6451665a7700000644000175000017500000000013013615571573027063 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸~c¹Tá<-Ÿ¥Œ3¥Ònm©ýÁòm-ò>"ruby-git-1.6.0/tests/files/working.git/objects/c5/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/c5/a3fdb33f052b8f17dac83c533b62244226f4ba0000644000175000017500000000013013615571573027340 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aP.•ûvðßE¯‡ VßÊמ¼ù"Œruby-git-1.6.0/tests/files/working.git/objects/f8/0000755000175000017500000000000013615571573022163 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/f8/e9c6748331411c0d3511f90bd4e0a1a30acff00000644000175000017500000000016713615571573027265 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýbNqr~I Ã\«Kæl_xåËIÁ¦“ùÚOÍù#é2ƒruby-git-1.6.0/tests/files/working.git/objects/79/0000755000175000017500000000000013615571573022105 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/79/e5b9e6ee5a1e6c52676a6332fe9163adaa92cb0000644000175000017500000000002413615571573027460 0ustar terceiroterceiroxKÊÉOR07`0ä¢ÃÔ 8ruby-git-1.6.0/tests/files/working.git/objects/b5/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/b5/d8fc3cb740eb643c66eb5f4a97345fdb8062590000644000175000017500000000012713615571573027406 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aøÄtº4ÐôŠšig‚zóÿÍZìs;å Eruby-git-1.6.0/tests/files/working.git/objects/85/0000755000175000017500000000000013615571573022102 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/85/8f46dd7496faf7af72102ca15cccff832b53770000644000175000017500000000013013615571573027403 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØl¦3ÁáËQµ„ÍŸç=Ð9w. ïh"oruby-git-1.6.0/tests/files/working.git/objects/0f/0000755000175000017500000000000013615571573022153 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/0f/845a0a981bc2f61354fcdd2b6eafe2b2c55c2d0000644000175000017500000000025013615571573027567 0ustar terceiroterceirox­ŽA E]s .`…ÂcâIÆaj»hi`šx|‰gp÷ß_¼<*Û¶ŠC¸HeÖ92xÏLnÌÑ£Ë.’'6¬ƒ0[ã¦Ô•wÑÐÒ Ç”‚ Ì4#²CB;ù“Ë OYJÕŠˆ~.He×·F¿ñÀ7æR[wÊJg¨Ôc¨Œ$uýtÚîÚÚä»+¸¤¯ŒQýíåÂÿtª²îê ¸X-ruby-git-1.6.0/tests/files/working.git/objects/0f/f4a0357c3d7221a2ef1e4c6b7d5c46d97fe2500000644000175000017500000000013013615571573027355 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðÒ~0ÅoRë‹Jb'7ìX~ùìeQõÈ"åruby-git-1.6.0/tests/files/working.git/objects/6b/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/6b/790ddc5eab30f18cabdd0513e8f8dac0d2d3ed0000644000175000017500000000006313615571573030010 0ustar terceiroterceirox+)JMU06a040031QH­Ð+©(ax6÷ÑìM¯9{wk®+ºqèIOðD@ºúruby-git-1.6.0/tests/files/working.git/objects/8a/0000755000175000017500000000000013615571573022156 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/8a/3fb747983bf2a7f4ef136af4bfcf7993a193070000644000175000017500000000002513615571573027414 0ustar terceiroterceiroxKÊÉOR042c0äHÕjÞruby-git-1.6.0/tests/files/working.git/objects/02/0000755000175000017500000000000013615571573022067 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/02/b2a02844d00574c234d17bec6294e832f3c4c10000644000175000017500000000013013615571573027033 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(apc-eÛ§ðZ”qÉǨ g-Wv¾KÙ‡!=ruby-git-1.6.0/tests/files/working.git/objects/b1/0000755000175000017500000000000013615571573022150 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/b1/b18f5bea24648a1b08e5bba88728c15ec3cb500000644000175000017500000000025313615571573027432 0ustar terceiroterceirox­ŽAnÄ E»æ\ #ˆiTUêIãt²HÔãõ ÝýÿOOúqìæÑ› UÏ+Ò*X0lB \€KÂÀ!ÅжB«{òÐÓ|ÆRÓšãd¨ ¼4ÝÒ¶D¨‘Rƒ¬šÚ¿ìч¿¤›ù¯K?ýý’¿ñÉßÜú¸¦Óvy]7éãyÊbcÿ™ïøðˆ5-©RÌþ €›t–›þ§ÓÍýt¿ÎWruby-git-1.6.0/tests/files/working.git/objects/b1/5336206c9040f4c52660b3f3c76ee02ccece560000644000175000017500000000002413615571573027207 0ustar terceiroterceiroxKÊÉOR0µ`0ä"QÀÜruby-git-1.6.0/tests/files/working.git/objects/b1/288f8beeaa6cf048c3a9f578d4e266fab8820e0000644000175000017500000000013013615571573027542 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¨|ºóÙ»(¹œ ô¬d£“×®štþÖ"îruby-git-1.6.0/tests/files/working.git/objects/a8/0000755000175000017500000000000013615571573022156 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a8/98e8a6b143188022863bc1cab0b5f7514624ba0000644000175000017500000000013013615571573027130 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aÈ}ñÛôГe³î^0øt{Ëwû+%ÚÑ¥$Žruby-git-1.6.0/tests/files/working.git/objects/a8/b607b221454c4cd7bc7831b2d19712bb4ff8880000644000175000017500000000002513615571573027225 0ustar terceiroterceiroxKÊÉOR044`0ä¢'Ñ¢ÿruby-git-1.6.0/tests/files/working.git/objects/29/0000755000175000017500000000000013615571573022100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/29/1b6be488d6abc586d3ee03ca61238766625a750000644000175000017500000000025113615571573027160 0ustar terceiroterceirox­ŽA E]s .`3 1ÆÄ“Ðé ]´4tšx|‰gp÷ß_¼<ªëºˆ/Ò˜5“a;;ÇMœ§2åaò„D–1DV{n¼‰Žè+DÕß^.üO§ê!˦¾¯øW~ruby-git-1.6.0/tests/files/working.git/objects/bb/0000755000175000017500000000000013615571573022231 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/bb/0850568bb43049031a38b01ddb60e4a487f8230000644000175000017500000000002313615571573027041 0ustar terceiroterceiroxKÊÉOR0´`0äB‡GY<ruby-git-1.6.0/tests/files/working.git/objects/71/0000755000175000017500000000000013615571573022075 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/71/c9a23879ff0ac8c49b92d107f3f89c6d1b2d920000644000175000017500000000002313615571573027326 0ustar terceiroterceiroxKÊÉOR02c0äÂm’'ruby-git-1.6.0/tests/files/working.git/objects/71/894b736711ea0a5def4f536009364d07ee4db30000644000175000017500000000025013615571573027147 0ustar terceiroterceirox­ŽQ Â0DýÎ)r%i¶k"‚'Ùl¶Ú6’®àñ]<ƒ_3ó†á¶®‹úñ ]ÄsQdÆ™"ÕSLgÆ2Å:*æÐ½¨Ë¦Þ0ÔQrÁZà 5Ì¢dÊlå:A” ŽÞúlÝïÜTýýIÜ6Ùùgnô Úún›ºð{?që¯SbíËÇÒzõ1f!cB SΨ=Wù禳#Ëæ¾9ÇX=ruby-git-1.6.0/tests/files/working.git/objects/b6/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/b6/987bc1201ad19774c43c0ea8078f6f51d76bcb0000644000175000017500000000002413615571573027307 0ustar terceiroterceiroxKÊÉOR03c0ä¢œÑ Çruby-git-1.6.0/tests/files/working.git/objects/b6/153b8fe540288d66b974ae05113338ab1a61f00000644000175000017500000000024713615571573027061 0ustar terceiroterceirox­ŽAÂ0 9çù¨il‡H!ñã¸ÐC›*5Ï'â Üvç0©Ë2›‰ÖT}ÀLH˜´L (ÌŒ¢±“±£‚¤¹›®æ=Ê$Y ИX2”cdJL—‘STÇo{Õæw©fþþb©«¿ìò7~r©mïN›å½Ÿ¤¶íÔ”ÅÚüéo¹ú2 dðÇá< ®Ó^núO§ë!óê¾§UXÖruby-git-1.6.0/tests/files/working.git/objects/b6/9e6acd87e5f9114ce6580b095ef1057a8fe5bb0000644000175000017500000000002413615571573027465 0ustar terceiroterceiroxKÊÉOR07b0ä¢ÙD uruby-git-1.6.0/tests/files/working.git/objects/54/0000755000175000017500000000000013615571573022076 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/54/6bec6f8872efa41d5d97a369f669165ecda0de0000644000175000017500000000025013615571573027500 0ustar terceiroterceirox­ŽQ Â0DýÎ)re›t›,ˆžd»Ýj?j$YÁã<ƒóæ1Rö}3&Í£FêãÀ9DÔABÂ$+Í)GÁeLó”ÖäømR}“bæo–òôç&¿på;/¥¶î´MÞí$¥¾NUY¬nŸNûÅ8aòGÈ®·ý¹é?δ™û…pVuruby-git-1.6.0/tests/files/working.git/objects/54/5ffc79786f268524c35e1e05b1770c7c74faf10000644000175000017500000000022513615571573027173 0ustar terceiroterceirox­Q à Dûí)¼@Óh ”BO²Ù¬i VY äø•ž¡3ïcxC)ƽ꾟/U˜5,«& p3»É²Ébè5Î,L TxÔW](ÕªŸ/¤ôÑ·B¿ðÀ ×$%£ÔŽÒQ’Ü #UÙÏÖâ]3ƒ·0:} m&•ÿ¹©øÄ˜ß¬·öQ8'õÌÒN£ruby-git-1.6.0/tests/files/working.git/objects/54/7a4bae347658f0d9eed0d35d31b4561aea7cf80000644000175000017500000000025113615571573027451 0ustar terceiroterceirox­Ž] Â0„}Î)rK²ÙüˆàI6ÛTûÐFÒ<¾Á3ø63ðÍ ·m[EC'éµjÈ@BœñÎ6–Ê2Öä`qŒlÕ‹zÝEûo(ÛZÀ¥á`ƒ‹½]BŠÙÛ¢è-ÏÖõÁMDߟÄm×—ƒâFš[?F§¬ü>&ný5õJ,}ý ·]µµ=æ€QŸÍ˜Q#Ï¥þ³S#뮾~âVKruby-git-1.6.0/tests/files/working.git/objects/54/5c81a2e8d1112d5f7356f840a22e8f6abcef8f0000644000175000017500000000025113615571573027373 0ustar terceiroterceirox­Ž] à „ûì)¼@ƒ¿¥z’uÝ´>$5ÐãWz†¾Í |CeÛr—àÒ+³tŒ¸F‚³ÈäÖ°jÐ&)›Øª@F;˸ˆ+ï\t„È.„ÉH–YYÂÙ0€ñ8{g—*•ÞåóTvykô |a*µ gÏt¶‰J=¦ÊH½æÏhÛ]j½8ï𳼪 ”ëxÞùŸN1Žä]|EÞX;ruby-git-1.6.0/tests/files/working.git/objects/54/0200385c3b0b299c7a87ecf59ca94c32fbbe990000644000175000017500000000002413615571573027314 0ustar terceiroterceiroxKÊÉOR07a0ä¢ï2 ²ruby-git-1.6.0/tests/files/working.git/objects/52/0000755000175000017500000000000013615571573022074 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/52/4038b20b297f40d78e7d83e04e38049457312b0000644000175000017500000000013013615571573026645 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aøÝWÑÂ[ɵ?àíë¯;¯m·{ðÛýÍ#µruby-git-1.6.0/tests/files/working.git/objects/4d/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/4d/ff9ef38ef09cbf0e36031bbee22b7cf0c7a8fc0000644000175000017500000000002313615571573030026 0ustar terceiroterceiroxKÊÉOR02a0äÂcêruby-git-1.6.0/tests/files/working.git/objects/4d/35ba97a858072c240d327e3ce30c28b333a1b00000644000175000017500000000025113615571573027117 0ustar terceiroterceirox­ŽKÂ0 Yç¹UÜ:? !$Nâ:.tÑ¥FâøDœÝ›· ×m[ÕŽ!œ´‰Xd(œ$……grR|„D1º¸¤eDŽæEMvµ~¢8–Å{Ÿ¼ŒSžaaÌ©xÉó  ½õY›=¸ªÚû“¸îörðoÜèA¥¶£;uå÷1pm¯¡ ±¶õÓi»Z€Œs@°g—œ3ýíå*ÿtš²îæ ´GXÕruby-git-1.6.0/tests/files/working.git/objects/0d/0000755000175000017500000000000013615571573022151 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/0d/519ca9c2eddc44431efe135d0fc8df00e0b9750000644000175000017500000000025213615571573027517 0ustar terceiroterceirox­Ž[jÃ0Eû­Uh1ifdC(¬d¬Gã[AC—Ñ5ôï>àpRÛ÷M­gþÒ^ŠÅè*Ë«äì©r^]ÅèIJˆqŒ¸bó–^µ3TB ½óÈ<^bâ"ÈAh]0 U#—¾Z·gjªöù’Ô{?Ó_xÈäÖÏÁÔ-]ç”ZO½HÒ¾ý޶[€ F¶77;gÆ:̵ü'Ó ‘í0§cV_ruby-git-1.6.0/tests/files/working.git/objects/0d/2c47f07277b3ea30b0884f8e3acd68440507c80000644000175000017500000000025313615571573027147 0ustar terceiroterceirox­ŽAn! E»æ\ ž1†HQ©'1Æ4³˜!b©Çêºûï/žžô}ßÌ/D6T=6 a))7%bMº†[”ȈTjÈÅ=yèaž–$5ÌÂJ­ ”„±VÒšÆj^኎_öèßÒÍü÷ƒ¥þvÊ߸ó×>Îé´M^çEúx^†²ØØ~'í_¦$â•VôŸ!‡àæ;ËMÿÓéfÈv¸7ç­Xruby-git-1.6.0/tests/files/working.git/objects/58/0000755000175000017500000000000013615571573022102 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/58/73a650a91eb238005444d2c637b451f687951b0000644000175000017500000000025113615571573026651 0ustar terceiroterceirox­Ž] Â0„}Î)rË6?›DO²Ùlµm$]Áã<ƒo3ÃðñqݶU­Cö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a˜i{sãÙW[í "ÚNÊîÙÓ©ùþ“‘"øruby-git-1.6.0/tests/files/working.git/objects/93/5badc874edd62a8629aaf103418092c73f0a560000644000175000017500000000026313615571573027230 0ustar terceiroterceirox­ŽAjÄ0 E»ö)t¶$;6 ¥Ð“¨²Òšq°=Ðã7ô Ýý÷¯í8ö ¸,/³›/˜¢¯Œ«Žlh)U)kÔóg–5U,ÙÒí1XbJ5ªÊ‹ÇÕSàRR©™BLÞÉsn­ÃÐ6'|l¢í÷¡ã]¾¤¶>®æÜõ9nÚúyë&:ûþsÑñ!ND”^}öÞ]öz>í?›îhÝ`˜tÝ`³ïÓýÊGZÂruby-git-1.6.0/tests/files/working.git/objects/57/0000755000175000017500000000000013615571573022101 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/57/7ddd894033c46a5fcf2c6f3c4e71cc72f869090000644000175000017500000000007313615571573027340 0ustar terceiroterceiroxKÊÉOR0±`ÈHÍÉÉç*ÉÈ,VÈ,æJTHËÌIrK@܂҅ŒÔ" @¾BqjbQr ”ruby-git-1.6.0/tests/files/working.git/objects/ac/0000755000175000017500000000000013615571573022231 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/ac/8f48bbb7b31c945ba6a4fbe6950d009a5d83730000644000175000017500000000002413615571573027444 0ustar terceiroterceiroxKÊÉOR03`0ä"b3 ruby-git-1.6.0/tests/files/working.git/objects/56/0000755000175000017500000000000013615571573022100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/56/195ef83e9e20ca75dddef0630633fc8060ed110000644000175000017500000000002513615571573027307 0ustar terceiroterceiroxKÊÉOR04´`0äQÝóruby-git-1.6.0/tests/files/working.git/objects/ed/0000755000175000017500000000000013615571573022236 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/ed/551aa66cf0c6f1a078832f80899faff0ae88dc0000644000175000017500000000013013615571573027541 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a8ËiZm¶Äý¿úòƒe[ò¸ g;Ýäò âruby-git-1.6.0/tests/files/working.git/objects/06/0000755000175000017500000000000013615571573022073 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/06/f4e8a840d23fc0ab94895a5d16827a19f75fb70000644000175000017500000000002413615571573027243 0ustar terceiroterceiroxKÊÉOR05`0ä" ,èruby-git-1.6.0/tests/files/working.git/objects/e7/0000755000175000017500000000000013615571573022161 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/e7/ea5938f9c009d32235050bca991d0b9533e4400000644000175000017500000000013013615571573027057 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØå©“´M©¶Þ”}ËcÏ®~4Ÿðj?í†"Ôruby-git-1.6.0/tests/files/working.git/objects/ec/0000755000175000017500000000000013615571573022235 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/ec/1e3d44e160e18dbfbaa80b5b0780ccc03e678e0000644000175000017500000000013013615571573027563 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aùó{ß–'‰/\ÒjP^-{ï„#eruby-git-1.6.0/tests/files/working.git/objects/ec/16a327a6a98367d03369b4e998baf3db3793130000644000175000017500000000013013615571573027160 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØÍÖ½ÅÀ“YÊbƒìí„'KÚ(Ú iruby-git-1.6.0/tests/files/working.git/objects/16/0000755000175000017500000000000013615571573022074 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/16/9e6db43d4c09cd610179a7b9826483b4d941230000644000175000017500000000013013615571573027013 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a`ä®®dœ³UàÆÑ–é,BÄB'æÖú©ruby-git-1.6.0/tests/files/working.git/objects/16/d1f96acfd92d09c4f1f56d3441ac55dd30500e0000644000175000017500000000002413615571573027354 0ustar terceiroterceiroxKÊÉOR0¶`0ä"µQŒruby-git-1.6.0/tests/files/working.git/objects/16/ee5335538f11b4ffcc17b051f8d5db7570a0550000644000175000017500000000002413615571573027217 0ustar terceiroterceiroxKÊÉOR03a0ä¢ ˆÉ Šruby-git-1.6.0/tests/files/working.git/objects/39/0000755000175000017500000000000013615571573022101 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/39/66e9fa0e0b9fe9d3ef2fdaa6933f3d0bb82bc30000644000175000017500000000002413615571573027674 0ustar terceiroterceiroxKÊÉOR°4b0ä¢Ä+ Åruby-git-1.6.0/tests/files/working.git/objects/70/0000755000175000017500000000000013615571573022074 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/70/714b02913c1a249a5ab05021742f0bc7065df70000644000175000017500000000025113615571573026751 0ustar terceiroterceirox­ŽKÂ0 DYç¹U¾®+!„ÄI7….ÚT‰+q|"ÎÀnfo—m[E;€‹Ôœ5á„ ’ Þ"ç|bË”LŠËm©ƒjÞEƒ·!@æhÐ öäí²,#ˆ¦™Ãè“¢SÞ¥êÆED?ßÄe×·Æ¿ð Í¥¶Î”•Ï6p©ÇP3±ÔõÓÛv×ÖN!† bÐ×þeT_»¹ä2UYwõ-ÎW%ruby-git-1.6.0/tests/files/working.git/objects/00/0000755000175000017500000000000013615571573022065 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/00/62cdf4c1e63069eececf54325535e91fd57c420000644000175000017500000000013013615571573027304 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØ6/ëlûÓŸ‚>Ï"¸9ã>²Võ?Ý ûÊ"]ruby-git-1.6.0/tests/files/working.git/objects/00/ea60e1331b184386392037a7267dfb4a7c7d860000644000175000017500000000025313615571573027003 0ustar terceiroterceirox­Ž]j1 „ûìSø þ“£…P=‰V–š}Øuð*ÐãÇô }›˜û¾oæS­6D|fͰ¶XXASk×UD±.Ø®!h¦Q€Ý“†æ¡c¤$ØbŒ©^3TÅ(ÍQ+­<ïêèe>üÉÝÌ?ˆûáo'ÿ…;ýPëãœLÛøu^¸çe±íw¶ýËǸ(KôŸCpsæ&ÿÉtSd;ÜÕY ruby-git-1.6.0/tests/files/working.git/objects/44/0000755000175000017500000000000013615571573022075 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/44/987dd95c338fb573726541f270f1a7b55c9d510000644000175000017500000000002513615571573027033 0ustar terceiroterceiroxKÊÉOR040b0ä¢\ýruby-git-1.6.0/tests/files/working.git/objects/44/88516c3c936db58ea485ec2213dab9d13e66280000644000175000017500000000002413615571573027157 0ustar terceiroterceiroxKÊÉOR°°`0ä¢ “b Truby-git-1.6.0/tests/files/working.git/objects/2a/0000755000175000017500000000000013615571573022150 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/2a/f6f7d51b7afdd404a871581ebb3b6ac07fb8cc0000644000175000017500000000013013615571573027653 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðܤ9ÝôïâÅÆÇæ$‹wóØþâê žruby-git-1.6.0/tests/files/working.git/objects/d5/0000755000175000017500000000000013615571573022156 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/d5/b9587b65731e25216743b0caca72051a7602110000644000175000017500000000025213615571573026704 0ustar terceiroterceirox­ŽA Â0E]ç¹€ÒIÒ$"‚'™N¦ÚE›’Žàñ žÁÝñx\×uQëb¼>n·Í fü°C2¶¦ž[ ‰T©Fæˆ96ÌË¢Z±¬MÜ?²Ô´4âŽ% ó ×X‰4ø”ú{IêiYÝí:˜}˜Áï•úØágöW\èxóiÚÖïóû´]>ÏBÍ%ú’|yôÞõ×®ÉÛãML¦¹à°P°ruby-git-1.6.0/tests/files/working.git/objects/5e/392652a881999392c2757cf9b783c5d47b67f70000644000175000017500000000025213615571573027007 0ustar terceiroterceirox­Ž] Â0„}Î)r%›ß ˆžd»IµmJº‚Ç7xßf†™á¶®‹hãIz­ºâTŒ› ºí<‘Ñ0º\|v(a©ŒAíÔë&:Í!Ú0ÇÉq²à,&˘ ¤Ñ¶kACEoyµ®n"úñ"n›¾üwzRiýLYø}\¸õýÒ+±ôå3ÜzÓÙŸcÈúlÐ5Òñ\ê?™jY6õíJV®ruby-git-1.6.0/tests/files/working.git/objects/32/0000755000175000017500000000000013615571573022072 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/32/4968b9dc40253f2c52a8e3856398c761dea8560000644000175000017500000000025313615571573027037 0ustar terceiroterceirox­ŽKnÃ0 »Ö)t2õ5r’¢/l2 ôøz†îÞ›Å`¸íû¦RúÒ.b#B‘µÂÊkŒ”)¡ÌœÅJŧyP"óÆ.‡ÚP}$\2–X\†àª‡,žÅ;†BÞ{œÉ¼ôÕº=¹©Úç ¹ö~òßxàÖÖÏáÔ¯sâÖßSdíÛïxû·ç%ݤöæŠsfÐQ®òŸN3B¶Ã|‰OXƒruby-git-1.6.0/tests/files/working.git/objects/47/0000755000175000017500000000000013615571573022100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/47/0f6a87fa51dd25f6db0f4725ae37791d4493560000644000175000017500000000013013615571573027162 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aXÓï±{ûf™)ÑË–ü~6•—aVls1ü$".ruby-git-1.6.0/tests/files/working.git/objects/47/8e5ee111572790b248eaa99140c5a8f728abc70000644000175000017500000000025313615571573027162 0ustar terceiroterceirox­ŽKnÃ0 »Ö)tÔ‡´E€ž„¢˜Æ [Ì=~„ž¡»7o1éû¾™D6T}&&ˆ)†°`\t©¸°@k¨œù¥¥{«TÈ=yèa~­­dPEÖš¢B D³Ä!¥UJsü²Gþ”næ¿,ýð×SþƸõqN§mò:/ÒÇó2”ÅÆö;iÿò!”Œ¹¢ÿ„ÀÍw–›þ§ÓÍípoßbWíruby-git-1.6.0/tests/files/working.git/objects/47/2650d42fa9454e2e61e3da9f5c158b8af6d2980000644000175000017500000000016613615571573027254 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýbNqr~I ƒ«Â¡Ùqswn¸oS½º¢@´N–á0.ßruby-git-1.6.0/tests/files/working.git/objects/cb/0000755000175000017500000000000013615571573022232 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/cb/45eef6fa1ad913137d91c6b81d2b42d69094a60000644000175000017500000000013013615571573027361 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aXùèciÒºŠå±'BwÛž|Qœ"{é# ruby-git-1.6.0/tests/files/working.git/objects/d3/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/d3/d171221e87a30e059d638f155f899595d96b710000644000175000017500000000002313615571573026754 0ustar terceiroterceiroxKÊÉOR02`0ä„O¤pruby-git-1.6.0/tests/files/working.git/objects/95/0000755000175000017500000000000013615571573022103 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/95/ef665df6ebd69842c5e74a24cb8a12225dee3e0000644000175000017500000000013013615571573027462 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aø¹çÅÌ@Îó«ÝcY¬joŠæÆ…û]÷Ù![ruby-git-1.6.0/tests/files/working.git/objects/81/0000755000175000017500000000000013615571573022076 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/81/f545324202466d44115656ea463a5bb114345f0000644000175000017500000000025213615571573026551 0ustar terceiroterceirox­Ž] Â0„}Î)rKó×& "x’ínVûЦ$[ðøÏ ÌÃÌ0 –m[EÛiºHÍYÇÙOD³OÏ]ÖŒÁDdŽÎ.Áͳ: æ]4|_.#Qæ‰)™Å¥˜ˆ""d›‰‚SÞ¥ê†ED?߀e×·†?ó€P©­ÊŠg°Ôc¨Pêúéi»kc’Ê}ã8ªÞvrÉÿüTdÝÕCGYµruby-git-1.6.0/tests/files/working.git/objects/81/d4d5e9b6db474d0f432aa31d44bf690d841e940000644000175000017500000000025113615571573027311 0ustar terceiroterceirox­ŽKÂ0 DYç¹UÒü\ !$Nâ:tѦJ]‰ãqvófñf¨®ë"zŒñ"Yç)$d,9;ÛÁ1ì\KG˜'ËjÇÆ›hôO>ØKqvfp¥:NaŽècPxÊ»6}PÑÏ7RÝôí _xà smGwÊBç1PmûÐIÚòé´Þµµ}ÄOÑE}5`Œêm.üO§êG–M}€ñX½ruby-git-1.6.0/tests/files/working.git/objects/81/25fbe8605d2884e732a185c9a24abcc0d12a1f0000644000175000017500000000025113615571573027272 0ustar terceiroterceirox­ŽA Â0E]ç¹€’´3“DO’N¦ÚE›’Žàñ žÁÝñx\×uQ;´‰Ø"a(¢§™ H:㔇iÑÌž›ljgD狤8„Ä3zçcŒa„@ó(¹8!“ßúªÍ\Uí㕹nözðoÜó3—ÚŽîÔ…ßÇ…kÛ/M2k[>Ö›õ>u{"{vÑ9Óß^®òO§é!Ëf¾y¥Wiruby-git-1.6.0/tests/files/working.git/objects/34/0000755000175000017500000000000013615571573022074 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/34/a566d193dc4702f03149969a2aad14432315600000644000175000017500000000027013615571573026631 0ustar terceiroterceirox­ÎMn…0 à®9…/ЧüB¤ªªÔ“Ç., (1ê;þC=Cw3³ø4\÷}33¾Y¯SöËœrQ?²N Ãè‚*yŽqAB'‰D‡“šË’<ÆŒXXɹIE%é‚™ñf"/!S‘.[kƒÎÕ ¾WâzÀGç¿ðE?Tjë·i_ýÁµ&ÄÖ¶çÝöOð>ãCN#¼»Ù¹á^ïç&ÿi{-›nRÀ*Õ ¯õ®sxÒ_€ruby-git-1.6.0/tests/files/working.git/objects/3c/0000755000175000017500000000000013615571573022153 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/3c/644f22b9b8edb06e7e298ecac8e71b133061f10000644000175000017500000000002413615571573027363 0ustar terceiroterceiroxKÊÉOR05c0ä"?žŸruby-git-1.6.0/tests/files/working.git/objects/3c/f35bd14cf5f2dd08bbeef8698d700f3a038e5c0000644000175000017500000000013013615571573027606 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a“Œûa7OáTéÝ{’ÙŒÿ4$¼ïÆ!âruby-git-1.6.0/tests/files/working.git/objects/3c/c71b13d906e445da52785ddeff40dad1163d490000644000175000017500000000011213615571573027357 0ustar terceiroterceiroxMËA €@@ÑÖžÂg&,Ña4º~¶kù>ü®Þqß&U‡d ”€†§([~w"Ó¬àÔæÁèöW>æu۵ ‹Fruby-git-1.6.0/tests/files/working.git/objects/a7/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a7/88a1cba299638a2c898fcfaae1f69a1549853d0000644000175000017500000000025213615571573027416 0ustar terceiroterceirox­ŽAÂ0 9çù(‰k'‘Bâ%®›BmªÔH<Ÿˆ7pÛÝÃìH]×Em :i+Åfp$id(sž„i& ä’’Dï3!›[ÙÔN8fLq$ŒàKÀà)0:aázŽä‚÷†ßúªÍRUíãÅR7{=äîüä©¶£3u‘÷q‘ÚöK+,Ú–OoëÍöã‡LìÙ%çL_»¹–2MY6óîHV³ruby-git-1.6.0/tests/files/working.git/objects/8c/0000755000175000017500000000000013615571573022160 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/8c/e3ee48a7e7ec697a99ee33700ec624548ad9e80000644000175000017500000000025013615571573027431 0ustar terceiroterceirox­ŽM Â0F]ç¹€%& "x’Étª]´)É<¾Á3¸û¾·x<*Û¶Šv©ÌzôˆÙ³™,@Œ90xÀd9€ >8kâÕ•wÑiÁà3ÍaÄÅE¶&1,SND³î(y¯ð”w©ºQÑÏ7RÙõ­Ño<ð…s©­;e¥³ Tê1TF’º~úÛîÚÚÆ`´új¢1ªÓ^.üO§ê!뮾ÿØXruby-git-1.6.0/tests/files/working.git/objects/4a/0000755000175000017500000000000013615571573022152 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/4a/4e676afe275afecf23130390fe96d0e6d000570000644000175000017500000000002413615571573027301 0ustar terceiroterceiroxKÊÉOR01a0ä"Þ¶:ruby-git-1.6.0/tests/files/working.git/objects/4a/2bee50944e9285e8f82216c9b0b8a7d3cdd3150000644000175000017500000000002413615571573027312 0ustar terceiroterceiroxKÊÉOR°4c0ä¢-ú ?ruby-git-1.6.0/tests/files/working.git/objects/4a/de99433ac3e4bcc874cd7de488de29399e90960000644000175000017500000000025413615571573027436 0ustar terceiroterceirox­ŽQjÄ0 DûíSø]ìIJ-X–BO")J7‰ƒ£…=~MÏP˜™axŒ´}ßÌO9XWõ –•‡hJ…€ŒE1Ìi’51f àNêz˜çȱ®À:æ9UŠª3ÕZ¦*TfaŽ^ölÝ_ÒÌü÷“¤þ~ÉŸù¢ZZ¿Ó6y]7iý¼u%±¾½GÚ>FL0Ïņ‚íxnúŸL7Žl‡û2äXIruby-git-1.6.0/tests/files/working.git/objects/4a/1e3e4500962c3631a479726bf2e40469594cba0000644000175000017500000000002513615571573027003 0ustar terceiroterceiroxKÊÉOR040c0䢘KŽruby-git-1.6.0/tests/files/working.git/objects/2f/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/2f/53e667d1d88e75b3fa300f9ab6e2d8ffd32a150000644000175000017500000000002413615571573027453 0ustar terceiroterceiroxKÊÉOR01c0ä"íöwruby-git-1.6.0/tests/files/working.git/objects/94/0000755000175000017500000000000013615571573022102 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/94/c827875e2cadb8bc8d4cdd900f19aa9e8634c70000644000175000017500000000012713615571573027475 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°Zãí ¾â{€ZÁÝý%NÂw=Û°ôruby-git-1.6.0/tests/files/working.git/objects/98/0000755000175000017500000000000013615571573022106 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/98/fb6a686563963b8f7e552d747158adbc1c2bd60000644000175000017500000000002213615571573027255 0ustar terceiroterceiroxKÊÉOR°`0ä‚@ôäruby-git-1.6.0/tests/files/working.git/objects/92/0000755000175000017500000000000013615571573022100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/92/4dec9203af851c3b3e564697ab3004b35b3c2f0000644000175000017500000000002513615571573027213 0ustar terceiroterceiroxKÊÉOR042b0ä(Œdruby-git-1.6.0/tests/files/working.git/objects/ba/0000755000175000017500000000000013615571573022230 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/ba/c335cb9dc058a477d04cde34c07d1f70d16fb90000644000175000017500000000013013615571573027512 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýðF"(ruby-git-1.6.0/tests/files/working.git/objects/ba/492c62b6227d7f3507b4dcc6e6d5f13790eabf0000644000175000017500000000002713615571573027450 0ustar terceiroterceiroxKÊÉOR04²`0äHhÄø˜ruby-git-1.6.0/tests/files/working.git/objects/9f/0000755000175000017500000000000013615571573022164 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/9f/a43bcd45af28e109e6f7b9a6ccd26e8e193a630000644000175000017500000000025213615571573027544 0ustar terceiroterceirox­ŽA E]s .`3ÃBbŒ‰'¡µ]´4tšx|‰gp÷ß_¼<®ëºˆ6Þ_¤•¢ —É¡ ­ÍÌÆ›Œ~,& aM޲›LT{je=!¦LS"F{syr"£àCAâˆ*2צ®"ú5'®›¾üÏôN¹¶£;eáó¸¶}h%±´åÓi}hÄhÞ¡¾BPýíåRþéT=dÙÔôVÜruby-git-1.6.0/tests/files/working.git/objects/9d/0000755000175000017500000000000013615571573022162 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/9d/6f937544dc3b936d6ee1466d6e216ba18d56860000644000175000017500000000012713615571573027204 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a(1Ú.)%QlúÜëÙ‡iYuo5ËÜh Èruby-git-1.6.0/tests/files/working.git/objects/9d/3ad2f09cb7a1d4f4c91182c96f2be537fbc4ff0000644000175000017500000000006413615571573027620 0ustar terceiroterceirox+)JMU06c040031Q(I­(Ñ+©(a¯½Ûé`|$+þ¼N¾_ᙢ™œ?á#ruby-git-1.6.0/tests/files/working.git/objects/e6/0000755000175000017500000000000013615571573022160 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c53910000644000175000017500000000001713615571573027405 0ustar terceiroterceiroxKÊÉOR0` °ðruby-git-1.6.0/tests/files/working.git/objects/9a/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/9a/e1fbd7636c99d34fdd395cf9bb21ad51417ce70000644000175000017500000000025113615571573027545 0ustar terceiroterceirox­ŽË Ã0DsVj FÿXB •¬V«Ø[FZCÊH 9ÌÌáñ°nÛÊÒ„páF$uŒÙ”™‚*9g’TÊ™F¬'0'e‹8 ÑÎB2]27¢K´%­µwF(¾D²8$àä¥6Ù±2Ë×Xwyïø+OxC®­&¯xö k;¦F€ÜÖÏXÛCjw18%¯jVJŒw˜3ý“)†Èº‹/~¬Y²ruby-git-1.6.0/tests/files/working.git/objects/a3/0000755000175000017500000000000013615571573022151 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a3/62d30d5fe1021cabc4c90f073ba2511d5a43a10000644000175000017500000000013013615571573027304 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a˜äûfóúVk»0·é« X6GÛèáburuby-git-1.6.0/tests/files/working.git/objects/a3/db7143944dcfa006fefe7fb49c48793cb29ade0000644000175000017500000000026213615571573027623 0ustar terceiroterceirox­ŽKjÄ0³Ö)úÔÖÇ„ÈIÚý‰ ñh4ãÇä Ù½ªEñ¸ç1aYËËìª`E+ç5–0"²—­úM¢zB žØÌ»u½OT kZS¶´É’·¼rR43©‹ä"7Å¨Žžso·9ás'nwxü7>苤õq5çÁÏqãÖ·®Ä³?ï€XcKM^}ñÞ]öz>õ?›ŽDT`(uÞÁŽou¿vd\¯ruby-git-1.6.0/tests/files/working.git/objects/a3/c1f067074cdc9aa998cb5f3cad46a6f17aab2d0000644000175000017500000000025213615571573027657 0ustar terceiroterceirox­ÎÁ à …áž™‚HªªR'ÁirHˆÀ‘:~igèÍχO?çm[E£÷))i œÀ†<Ò0x`ì'çì<‹ÄÆÇ9 :bI»èÉX&†ÀÜÛ™¼u HÁÛ %gxÄ€4ªxÊ’‹®œEôs‰œw}«ü;ñ§\j3eå³vœËÑ•YÊúnk»kc‚uö+ëkËÕ¾­\Ò?MÕBÖ]}b~WTruby-git-1.6.0/tests/files/working.git/objects/3a/0000755000175000017500000000000013615571573022151 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/3a/9f195756f5bd26b67c5e1fffd92d68d61be14e0000644000175000017500000000025313615571573027500 0ustar terceiroterceirox­ŽQ Â0Dýî)öʦI³ ˆžd»Iµ`MIVðøÏàß¼yŒ”m[Fƒ֜af±v’9&Á)°#Jè$eë)™…0¿Ìqع旂 ÞgƒÉ#…À±h²#w°H‹ iô¿õQ*4)ªp{°”œ›ü•ïœJmÝ©«¼ÛIJÝO5³h]?¶ ÝäcpއÞöçšÿéìÒòÍM‡/ÎhX·ruby-git-1.6.0/tests/files/working.git/objects/3a/ac4b445017a8fc07502670ec2dbf744213dd480000644000175000017500000000003113615571573027200 0ustar terceiroterceiroxKÊÉOR046`0äHhÄeIJQruby-git-1.6.0/tests/files/working.git/objects/7f/0000755000175000017500000000000013615571573022162 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/7f/bfee9f8882ada1ec45c4925baf5649d96c4a160000644000175000017500000000002513615571573027556 0ustar terceiroterceiroxKÊÉOR044b0ä¢/ðð<ruby-git-1.6.0/tests/files/working.git/objects/7f/86d16e0254f64f784198c6a55ef9bf7adbe7ce0000644000175000017500000000012713615571573027512 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸U]Ñ-Z:9˹‘•M`q¹ùqîÐàT—ruby-git-1.6.0/tests/files/working.git/objects/7f/5625f6b3c7213287a12c89017361248ed889360000644000175000017500000000025413615571573026614 0ustar terceiroterceirox­ŽAnà E»æ\ Ö` RTEÊI†aÜxaá±Ôãõ Ýý÷OÛ¾ojç¿´‹Xï¥R)è=r‘„™pYꜲçZ–˜VòyS—C-² Ò‚.«ÌÅy·ÖÂ"¥¸º2W†dèÒWëöä¦jŸ/âvØûÉãA?T[?‡S7¾Î‰[O]ˆµo¿ƒöoë\Æ€9†loÌxG¹Ê:ÍÙó†°Xºruby-git-1.6.0/tests/files/working.git/objects/4e/0000755000175000017500000000000013615571573022156 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/4e/ebc1b62c53241b7fbf7fb33b5230362595bfdd0000644000175000017500000000013013615571573027427 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸À2ño]ô¶_GÅì6Ú±•-x®/úc!íruby-git-1.6.0/tests/files/working.git/objects/4e/aafb1d843aec4f8f1612d03de46a08c2143ea90000644000175000017500000000013013615571573027502 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aàJúöÎ4håì‚ÆÅâ/4æfùöë¸!>ruby-git-1.6.0/tests/files/working.git/objects/da/0000755000175000017500000000000013615571573022232 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/da/597fb7fba247a5b59d917e90342cf4b96959050000644000175000017500000000012713615571573027262 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a8Øí7›CÓQœõú¯Y¢‹x;*8ÄÝ`Bruby-git-1.6.0/tests/files/working.git/objects/da/7b788b1575936a4381050610a37737c70b55a00000644000175000017500000000002313615571573026635 0ustar terceiroterceiroxKÊÉOR06c0ä" §÷Oruby-git-1.6.0/tests/files/working.git/objects/8b/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/8b/00d915a0ee5aeb32e0b166e1054c2901338c9d0000644000175000017500000000025113615571573027177 0ustar terceiroterceirox­ŽM F]s .`XþcL<É̶‹–¦‰Ç—xwß÷/ê¶­,sn9KÅŸ¬F%¥Yͼ¶AgÄ: å "q@Ë;KKÚ €Ñ´º8¥B‰Þ4>¢.)«” z'àä¥6Ù©2Ë×TwyïôOxCª­'¯tö‰j;¦–¸­Ÿñ¶‡Ô:ÎvŽÎZyUA)1è(çüO§!ë.¾ý‚Y6ruby-git-1.6.0/tests/files/working.git/objects/f1/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/f1/410f8735f6f73d3599eb9b5cdd2fb70373335c0000644000175000017500000000025013615571573027245 0ustar terceiroterceirox­Ž[ Â0EýÎ*²Ë䂈àJ’ÉTûѦ$Spù×à×}À=\¬Û¶²ÔÞ_¸I¦„ ãœÁÙ`õâ ”˜"R@tª˜hUqyGj´³Ì”•5hÑÞÙ!˜ øL }S ‘N~×&;Vfù|'¬»¼uü™Gz¥R[L^ñìÖvLr[?#mw©Ôl½y… F;ž3ý“)Æ‘u_9Xˆruby-git-1.6.0/tests/files/working.git/objects/f1/25480ee106989ec4d86554c0d5a1487ad4336a0000644000175000017500000000025313615571573027077 0ustar terceiroterceirox­ŽAn! E»æ\ p@ŠªH=‰1¦™Å ãH=~PÏÐÝÿoñôxìû¦?tŠX.!øÞ¥\kÅs¯×‚j\¬yðÌ“¦j]Ï1‘£’}eèèCŠ[ƒŠB] §ÄÐ ½ô1¦=y¨Úïñ8ìíä¿q§jcžË©¿Î ù¼L!Ö¹ý®·YïKL±`(öÓeçÌ¢«\å?f…l‡ydX®ruby-git-1.6.0/tests/files/working.git/objects/4c/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/4c/ce9432b2f80461324a61611f6143f8544cd80f0000644000175000017500000000002313615571573026775 0ustar terceiroterceiroxKÊÉOR06a0ä"›ruby-git-1.6.0/tests/files/working.git/objects/4c/e44a75510cbfe200b131fdbcc56a86f1b2dc080000644000175000017500000000025113615571573027473 0ustar terceiroterceirox­Ž[ à Eûí*Ü@ƒã+ ¥º’qÔ6‰ÁL Ë¯t ý»îáR[×…¥öþ½‰ÆëlTvµ€Ò@˜ÈRTUÍ&¡vÙ¡5bÇ^6–6Í£vÆÄ0v úZmÄ9—\€ì‘Jxò»uyPc–Ï7RÛäí Ÿxà sëÇ`òBç1QëûÔ ÷å3Üz—Ñ:½‹òª‚Rb¤ã9—2Å8²lâ Q*XŠruby-git-1.6.0/tests/files/working.git/objects/4c/411dc8e6ea6fcba0ed56e84aa7707f881d24c70000644000175000017500000000013013615571573027527 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a»ø3ëüM]Î#¿æš8® ½kÀýŽ!áruby-git-1.6.0/tests/files/working.git/objects/82/0000755000175000017500000000000013615571573022077 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/82/d331cf4d3d4ee537c4f866cab2633b46a8d0900000644000175000017500000000025313615571573027310 0ustar terceiroterceirox­ŽAnÄ E»æ\ #Û1¤QU©'1t²HÔãõ Ýý÷OOûqìæ)Æ7µz¤ZÖ57Î 9rYH2ñ–q+[ÔEtOõ4Ÿ ! Œ‹¢g R abjP4A [KN^öèÃ_ÚÍü×C´Ÿþ~éßø”oÙú¸¦Óv}]7íãyUÔÆþ3éøðˆ™çؿà àæ;Ë­þ§ÓÍýt¿Ã4Vžruby-git-1.6.0/tests/files/working.git/objects/fc/0000755000175000017500000000000013615571573022236 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/fc/b49fa99454f804799a12095292edbca48779ab0000644000175000017500000000002313615571573027257 0ustar terceiroterceiroxKÊÉOR04a0äB†6³Âruby-git-1.6.0/tests/files/working.git/objects/a5/0000755000175000017500000000000013615571573022153 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a5/1546fabf88ddef5a9fd91b3989dd8ccae2edf30000644000175000017500000000025113615571573030057 0ustar terceiroterceirox­ŽM Â0F]ç¹€%“ÿ‚ˆàI&Ó©vѦ¤SðøÏàî}ßâñ¨®ë"ÚÆx‘ÆÜÁ±£`“1žSIÞòsò‰ Ì%1@¶aJ¨vl¼‰.‚+yæàÍyбŒÉ#›àœËX#ÌFá)ïÚôAUD?ßHuÓ·ƒ~ðÀNµÝ) Ç@µíCc$i˧¯õ®Fü}ÐW“QýíåÂÿtª²lê N3W<ruby-git-1.6.0/tests/files/working.git/objects/e9/0000755000175000017500000000000013615571573022163 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/e9/0de8268373e4fd5ab13310b7745d47ec16813c0000644000175000017500000000002413615571573027150 0ustar terceiroterceiroxKÊÉOR05a0ä"-úbruby-git-1.6.0/tests/files/working.git/objects/fb/0000755000175000017500000000000013615571573022235 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/fb/8e78840d79085abf50edebf5b9d6b73ee0fb4c0000644000175000017500000000002413615571573027707 0ustar terceiroterceiroxKÊÉOR07c0䢭 ïruby-git-1.6.0/tests/files/working.git/objects/f2/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/f2/ff401fb3fc81f8abb3ca15247aadc1e22b62880000644000175000017500000000025113615571573027565 0ustar terceiroterceirox­ŽM Â0F]ç¹€eÒü4Á“L'í¢MI§àñ žÁÝ÷¾ÅãQ]×EôÂE³¦àÃÄca"b“ED¤q.iŠ0YcvjÇÆ›hÈÞ$ÂD#çLÎ9k¸°±>C¡˜ Ü&¯ð”wmú *¢Ÿo¤ºéÛA¿ñÀæÚŽî”…Îc Úö¡1’´åÓi½kc’ó.ô"€êo/þ§SõeS_$…Y[ruby-git-1.6.0/tests/files/working.git/objects/f2/02cb755135d4263589602783b04fb32a079d880000644000175000017500000000002413615571573026647 0ustar terceiroterceiroxKÊÉOR0±`0ä" ý´´ruby-git-1.6.0/tests/files/working.git/objects/c6/0000755000175000017500000000000013615571573022156 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/c6/567e2feccce3893ae0aaac2bf97807338aa8d40000644000175000017500000000013013615571573027610 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aX¸˜mÞŸcοsÒü2wܲMló!ˆruby-git-1.6.0/tests/files/working.git/objects/73/0000755000175000017500000000000013615571573022077 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/73/b171450704ea4350f9f884426389fe04c6cd510000644000175000017500000000013013615571573026732 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°5–ݩշ–55}Þï²Ïë2ßJ—ßí ýruby-git-1.6.0/tests/files/working.git/objects/fa/0000755000175000017500000000000013615571573022234 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/fa/6312f71abb153ada6a0399ad710d21bb61e4d80000644000175000017500000000013013615571573027406 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(axüú}YPüËg/îÏ4YÐ*tÿ{ù0$¼ruby-git-1.6.0/tests/files/working.git/objects/66/0000755000175000017500000000000013615571573022101 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/66/80a909b0e02b297bedbe143ef789d2972353580000644000175000017500000000013013615571573027102 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(ap™Q{3ƸkqQªã§‚Ë·ÆÌ ó…"Jruby-git-1.6.0/tests/files/working.git/objects/99/0000755000175000017500000000000013615571573022107 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/99/3dd9b1cdeab53e305886c91dbcbc8929eff22e0000644000175000017500000000002313615571573027626 0ustar terceiroterceiroxKÊÉOR02b0äÂY ­ruby-git-1.6.0/tests/files/working.git/objects/5c/0000755000175000017500000000000013615571573022155 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/5c/16fb8b958b51f6008f9722b279b1fde0defb760000644000175000017500000000025313615571573027410 0ustar terceiroterceirox­ŽAnÄ E»æ\ #ƒÒ¨ªÔ“ãt²HÔãõ ÝýÿOOúqìæÑ› UO” ” ¡†²VmU—ˆº­¹´ &LÙ=yèi>‡†¸È¶¨šp•¸e"á±FâÜ €ã—=úð—t3ÿõ`é§¿_ò7>ù›[×tÚ.¯ë&}ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°Î{wóœó«N›/½j¶+M<Þ®›/ýU"Pruby-git-1.6.0/tests/files/working.git/objects/4f/0000755000175000017500000000000013615571573022157 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/4f/4065121cb78fe6116ae7e3075f5c5a446bd08b0000644000175000017500000000013013615571573027216 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aÈ»Ôx<|eæÿGú¶ç—6ó«TWý‘!ßruby-git-1.6.0/tests/files/working.git/objects/1d/0000755000175000017500000000000013615571573022152 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/1d/7be4117ded4534789d85c42ab579644cd3fa120000644000175000017500000000013013615571573027232 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸|±PI®}1ëÜä~ÑøÎ©Sofå{ ¾ruby-git-1.6.0/tests/files/working.git/objects/1d/9e4767a95047ca5e395714985afaedb186f4cd0000644000175000017500000000002313615571573027333 0ustar terceiroterceiroxKÊÉOR06`0ä‚ݘruby-git-1.6.0/tests/files/working.git/objects/b9/0000755000175000017500000000000013615571573022160 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/b9/8f4909807c8c84a1dc1b62b4a339ae1777f3690000644000175000017500000000025213615571573027174 0ustar terceiroterceirox­ŽK 1D]ç¹€’ÿDOÒétt32-x|ƒgpQPU‹Çþ® K‰‘ÄêLÖκµT|Äæ½VP+¦¬Š.‘ØaÐÆ²Q1ˆ-%›#ššm³IëTˆ…L4‘ X«Š€7¿úvfùxöM^ü•;<¡öqL&/ø>.ØÇ~Ècù̵ޤÖÙy—ƒò¬’Rb¾ÓœéŸL1E–M|9 XKruby-git-1.6.0/tests/files/working.git/objects/0b/0000755000175000017500000000000013615571573022147 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/0b/5262f6ee3552a99b7081a317e8289d6a4d8e720000644000175000017500000000002513615571573027104 0ustar terceiroterceiroxKÊÉOR044c0ä¢?1¶ruby-git-1.6.0/tests/files/working.git/objects/0b/c0d846cf80b079e763e35c3af273171bf01fca0000644000175000017500000000013013615571573027346 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(ax6÷ÑìM¯9{wk®+ºqèIOðD x#Éruby-git-1.6.0/tests/files/working.git/objects/0b/2fe00801b62b7760c23d554796b05abc16af920000644000175000017500000000013013615571573027117 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aÐ~–~ñF_éæ_ü³¶=ºñÿ²–(‚#Cruby-git-1.6.0/tests/files/working.git/objects/3b/0000755000175000017500000000000013615571573022152 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/3b/6eeed9ce43ea893cf48d263da93448edae9f1c0000644000175000017500000000002513615571573027713 0ustar terceiroterceiroxKÊÉOR040`0ä¢=@ ×ruby-git-1.6.0/tests/files/working.git/objects/74/0000755000175000017500000000000013615571573022100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/74/32b657191a10587335e74ae6f0966a7eed29760000644000175000017500000000002513615571573026751 0ustar terceiroterceiroxKÊÉOR04°`0䢶¯Ëruby-git-1.6.0/tests/files/working.git/objects/23/0000755000175000017500000000000013615571573022072 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/23/751ef6c1fed1304ae1d07020aa73da6f2b93b00000644000175000017500000000002313615571573027323 0ustar terceiroterceiroxKÊÉOR0²`0ä xˆdruby-git-1.6.0/tests/files/working.git/objects/5b/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/5b/0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa0000644000175000017500000000025413615571573030104 0ustar terceiroterceirox­ŽKn! D³æ\ #æciEÊI m2½èfD{¤?(gÈ®ª¯^DZ«õ)½é±Ñ#„R=TO¹#l¹HÞJ@ 0æà|5Ožrª•S ±U¢Œ9`ꎺpì®2Ú=Änø¥1íÕ†ªýzp§½_í/|ò7oc^‹©{{]·6æó6…›ÎýgµãÃ:·®‘’}‡`ÖºÌUþ“i–È~š_û¾Wruby-git-1.6.0/tests/files/working.git/objects/a6/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/a6/b25c4b27ee99f93fd611154202af5f9e3c99de0000644000175000017500000000025213615571573027407 0ustar terceiroterceirox­ŽA E]s .`Ì@!1ÆÄ“LÐ.Z /ñ îþû‹—ÇmÛVÑ.„“ôR4{‚š€j¼[bµs&ŽÀ` Î!:*.¤^ÔË.ºZç1šR¬ )¦Â˜cðÙdOãL)z˳u}pÑ÷'qÛõåà߸уrëÇpÊÊïcâÖ_S/ÄÒ×Ï íª­Mè1Húl¢1j¼£\Ê?j„¬»úµÈW¦ruby-git-1.6.0/tests/files/working.git/objects/d0/0000755000175000017500000000000013615571573022151 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d0000644000175000017500000000002113615571573027346 0ustar terceiroterceiroxKÊÉOR0b0ä-ruby-git-1.6.0/tests/files/working.git/objects/3d/0000755000175000017500000000000013615571573022154 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/3d/331db92a8ead0565679efb76f328ae69ed1b770000644000175000017500000000002513615571573027410 0ustar terceiroterceiroxKÊÉOR042`0änÚ'ruby-git-1.6.0/tests/files/working.git/objects/33/0000755000175000017500000000000013615571573022073 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/33/edabb4334cbe849a477a0d2893cdb768fa30910000644000175000017500000000013013615571573027362 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aX(êhÊ8e¾?g£üÅUo>š:~Ú½!ruby-git-1.6.0/tests/files/working.git/objects/33/8ecb0183d507498aedb669b796b4f9e8880f000000644000175000017500000000002413615571573027175 0ustar terceiroterceiroxKÊÉOR01b0ä"Ïôýruby-git-1.6.0/tests/files/working.git/objects/36/0000755000175000017500000000000013615571573022076 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/objects/36/fe213c328fd280f33abe00069c4b92eb5a88d10000644000175000017500000000025213615571573027275 0ustar terceiroterceirox­Ž] à „ûì)¼@ƒZ×(¥Ð“¬«i|H f=~¥gèÛÌ0||ÔÖµ²4Î]¸—" 8PÉ&@k5èiNJg›C&JŒÑIìØËÆ2šÍ-+7c*äS0)ƒIÁ£7fS¼À“—ÖåAY¾¤¶ÉûA¿ðÄ7æÖÁäJç1QëûÔ ÷úm}H­£Uòª‚Rb¬ÃœË?™bˆÔM|O"Xcruby-git-1.6.0/tests/files/working.git/info/0000755000175000017500000000000013615571573021150 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working.git/info/exclude0000644000175000017500000000036013615571573022523 0ustar terceiroterceiro# git-ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ ruby-git-1.6.0/tests/files/working.git/config0000644000175000017500000000010213615571573021376 0ustar terceiroterceiro[core] repositoryformatversion = 0 filemode = true bare = true ruby-git-1.6.0/tests/files/working/0000755000175000017500000000000013615571573017433 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/ex_dir/0000755000175000017500000000000013615571573020705 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/ex_dir/ex.txt0000644000175000017500000000000013615571573022050 0ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/0000755000175000017500000000000013615571573021064 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/FETCH_HEAD0000644000175000017500000000012513615571573022417 0ustar terceiroterceiro545ffc79786f268524c35e1e05b1770c7c74faf1 not-for-merge branch 'master' of ../working ruby-git-1.6.0/tests/files/working/dot_git/refs/0000755000175000017500000000000013615571573022023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/refs/remotes/0000755000175000017500000000000013615571573023501 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/refs/remotes/working/0000755000175000017500000000000013615571573025161 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/refs/remotes/working/master0000644000175000017500000000005113615571573026373 0ustar terceiroterceiro545ffc79786f268524c35e1e05b1770c7c74faf1 ruby-git-1.6.0/tests/files/working/dot_git/refs/heads/0000755000175000017500000000000013615571573023107 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/refs/heads/test_branches0000644000175000017500000000005113615571573025652 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working/dot_git/refs/heads/test0000644000175000017500000000005113615571573024005 0ustar terceiroterceiro1cc8667014381e2788a94777532a788307f38d26 ruby-git-1.6.0/tests/files/working/dot_git/refs/heads/master0000644000175000017500000000005113615571573024321 0ustar terceiroterceiro5e392652a881999392c2757cf9b783c5d47b67f7 ruby-git-1.6.0/tests/files/working/dot_git/refs/heads/test_object0000644000175000017500000000005113615571573025333 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working/dot_git/refs/heads/diff_over_patches0000644000175000017500000000005113615571573026500 0ustar terceiroterceiro1c04149973fb98fe8437fde044eb44cf5eb6ddda ruby-git-1.6.0/tests/files/working/dot_git/refs/heads/git_grep0000644000175000017500000000005113615571573024626 0ustar terceiroterceiro5e53019b3238362144c2766f02a2c00d91fcc023 ruby-git-1.6.0/tests/files/working/dot_git/refs/tags/0000755000175000017500000000000013615571573022761 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/refs/tags/v2.70000644000175000017500000000005113615571573023374 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working/dot_git/refs/tags/gitsearch10000644000175000017500000000005113615571573024732 0ustar terceiroterceiro935badc874edd62a8629aaf103418092c73f0a56 ruby-git-1.6.0/tests/files/working/dot_git/refs/tags/v2.60000644000175000017500000000005113615571573023373 0ustar terceiroterceiro3a9f195756f5bd26b67c5e1fffd92d68d61be14e ruby-git-1.6.0/tests/files/working/dot_git/refs/tags/v2.50000644000175000017500000000005113615571573023372 0ustar terceiroterceiro546bec6f8872efa41d5d97a369f669165ecda0de ruby-git-1.6.0/tests/files/working/dot_git/refs/tags/v2.80000644000175000017500000000005113615571573023375 0ustar terceiroterceiro5e53019b3238362144c2766f02a2c00d91fcc023 ruby-git-1.6.0/tests/files/working/dot_git/index0000644000175000017500000000067613615571573022127 0ustar terceiroterceiroDIRCG2]dG2]dpÏ¢¤õõæâ›²ÑÖCK‹)®wZØÂäŒS‘ ex_dir/ex.txtG5ýÔG5ýÔq¤õõ"Çšçaj¿-M]—Õfò²öÎàC example.txtG4¨›G4¨›q¤õõ]F‚6?ží*c6fh’È ¥ scott/newfileG4¨‡G4¨‡q ¤õõK<ÇÙäEÚRx]Þÿ@ÚÑ=Iscott/text.txtTREEV4 2 H»ðÛ~:ÿ«}Ò„+„Uÿ˜v¾scott2 0 E ›ˆ^¹°ß<{«xp~Ãex_dir1 0 ky Ü^«0ñŒ«ÝèøÚÀÒÓív• §x{m5°ë˜Ü¯ù/dev/null then git-diff-index -p -M --cached HEAD else # NEEDSWORK: we should produce a diff with an empty tree here # if we want to do the same verification for the initial import. : fi | perl -e ' my $found_bad = 0; my $filename; my $reported_filename = ""; my $lineno; sub bad_line { my ($why, $line) = @_; if (!$found_bad) { print STDERR "*\n"; print STDERR "* You have some suspicious patch lines:\n"; print STDERR "*\n"; $found_bad = 1; } if ($reported_filename ne $filename) { print STDERR "* In $filename\n"; $reported_filename = $filename; } print STDERR "* $why (line $lineno)\n"; print STDERR "$filename:$lineno:$line\n"; } while (<>) { if (m|^diff --git a/(.*) b/\1$|) { $filename = $1; next; } if (/^@@ -\S+ \+(\d+)/) { $lineno = $1 - 1; next; } if (/^ /) { $lineno++; next; } if (s/^\+//) { $lineno++; chomp; if (/\s$/) { bad_line("trailing whitespace", $_); } if (/^\s* /) { bad_line("indent SP followed by a TAB", $_); } if (/^(?:[<>=]){7}/) { bad_line("unresolved merge conflict", $_); } } } exit($found_bad); ' ruby-git-1.6.0/tests/files/working/dot_git/hooks/post-commit0000644000175000017500000000023013615571573024400 0ustar terceiroterceiro#!/bin/sh # # An example hook script that is called after a successful # commit is made. # # To enable this hook, make this file executable. : Nothing ruby-git-1.6.0/tests/files/working/dot_git/hooks/update0000644000175000017500000000370113615571573023415 0ustar terceiroterceiro#!/bin/sh # # An example hook script to blocks unannotated tags from entering. # Called by git-receive-pack with arguments: refname sha1-old sha1-new # # To enable this hook, make this file executable by "chmod +x update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "Usage: $0 " >&2 exit 1 fi # --- Config allowunannotated=$(git-repo-config --bool hooks.allowunannotated) # check for no description projectdesc=$(sed -e '1p' "$GIT_DIR/description") if [ -z "$projectdesc" -o "$projectdesc" = "Unnamed repository; edit this file to name it for gitweb" ]; then echo "*** Project description file hasn't been set" >&2 exit 1 fi # --- Check types # if $newrev is 0000...0000, it's a commit to delete a branch if [ "$newrev" = "0000000000000000000000000000000000000000" ]; then newrev_type=commit else newrev_type=$(git-cat-file -t $newrev) fi case "$refname","$newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname=${refname##refs/tags/} if [ "$allowunannotated" != "true" ]; then echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag ;; refs/heads/*,commit) # branch ;; refs/remotes/*,commit) # tracking branch ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 ruby-git-1.6.0/tests/files/working/dot_git/hooks/post-receive0000644000175000017500000000077613615571573024551 0ustar terceiroterceiro#!/bin/sh # # An example hook script for the post-receive event # # This script is run after receive-pack has accepted a pack and the # repository has been updated. It is passed arguments in through stdin # in the form # # For example: # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master # # see contrib/hooks/ for an sample, or uncomment the next line (on debian) # #. /usr/share/doc/git-core/contrib/hooks/post-receive-email ruby-git-1.6.0/tests/files/working/dot_git/hooks/commit-msg0000644000175000017500000000141413615571573024206 0ustar terceiroterceiro#!/bin/sh # # An example hook script to check the commit log message. # Called by git-commit with one argument, the name of the file # that has the commit message. The hook should exit with non-zero # status after issuing an appropriate message if it wants to stop the # commit. The hook is allowed to edit the commit message file. # # To enable this hook, make this file executable. # Uncomment the below to add a Signed-off-by line to the message. # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" # This example catches duplicate Signed-off-by lines. test "" = "$(grep '^Signed-off-by: ' "$1" | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { echo >&2 Duplicate Signed-off-by lines. exit 1 } ruby-git-1.6.0/tests/files/working/dot_git/hooks/pre-rebase0000644000175000017500000001024613615571573024162 0ustar terceiroterceiro#!/bin/sh # # Copyright (c) 2006 Junio C Hamano # publish=next basebranch="$1" if test "$#" = 2 then topic="refs/heads/$2" else topic=`git symbolic-ref HEAD` fi case "$basebranch,$topic" in master,refs/heads/??/*) ;; *) exit 0 ;# we do not interrupt others. ;; esac # Now we are dealing with a topic branch being rebased # on top of master. Is it OK to rebase it? # Is topic fully merged to master? not_in_master=`git-rev-list --pretty=oneline ^master "$topic"` if test -z "$not_in_master" then echo >&2 "$topic is fully merged to master; better remove it." exit 1 ;# we could allow it, but there is no point. fi # Is topic ever merged to next? If so you should not be rebasing it. only_next_1=`git-rev-list ^master "^$topic" ${publish} | sort` only_next_2=`git-rev-list ^master ${publish} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git-rev-list "^$topic" master` if test -z "$not_in_topic" then echo >&2 "$topic is already up-to-date with master" exit 1 ;# we could allow it, but there is no point. else exit 0 fi else not_in_next=`git-rev-list --pretty=oneline ^${publish} "$topic"` perl -e ' my $topic = $ARGV[0]; my $msg = "* $topic has commits already merged to public branch:\n"; my (%not_in_next) = map { /^([0-9a-f]+) /; ($1 => 1); } split(/\n/, $ARGV[1]); for my $elem (map { /^([0-9a-f]+) (.*)$/; [$1 => $2]; } split(/\n/, $ARGV[2])) { if (!exists $not_in_next{$elem->[0]}) { if ($msg) { print STDERR $msg; undef $msg; } print STDERR " $elem->[1]\n"; } } ' "$topic" "$not_in_next" "$not_in_master" exit 1 fi exit 0 ################################################################ This sample hook safeguards topic branches that have been published from being rewound. The workflow assumed here is: * Once a topic branch forks from "master", "master" is never merged into it again (either directly or indirectly). * Once a topic branch is fully cooked and merged into "master", it is deleted. If you need to build on top of it to correct earlier mistakes, a new topic branch is created by forking at the tip of the "master". This is not strictly necessary, but it makes it easier to keep your history simple. * Whenever you need to test or publish your changes to topic branches, merge them into "next" branch. The script, being an example, hardcodes the publish branch name to be "next", but it is trivial to make it configurable via $GIT_DIR/config mechanism. With this workflow, you would want to know: (1) ... if a topic branch has ever been merged to "next". Young topic branches can have stupid mistakes you would rather clean up before publishing, and things that have not been merged into other branches can be easily rebased without affecting other people. But once it is published, you would not want to rewind it. (2) ... if a topic branch has been fully merged to "master". Then you can delete it. More importantly, you should not build on top of it -- other people may already want to change things related to the topic as patches against your "master", so if you need further changes, it is better to fork the topic (perhaps with the same name) afresh from the tip of "master". Let's look at this example: o---o---o---o---o---o---o---o---o---o "next" / / / / / a---a---b A / / / / / / / / c---c---c---c B / / / / \ / / / / b---b C \ / / / / / \ / ---o---o---o---o---o---o---o---o---o---o---o "master" A, B and C are topic branches. * A has one fix since it was merged up to "next". * B has finished. It has been fully merged up to "master" and "next", and is ready to be deleted. * C has not merged to "next" at all. We would want to allow C to be rebased, refuse A, and encourage B to be deleted. To compute (1): git-rev-list ^master ^topic next git-rev-list ^master next if these match, topic has not merged in next at all. To compute (2): git-rev-list master..topic if this is empty, it is fully merged to "master". ruby-git-1.6.0/tests/files/working/dot_git/hooks/pre-applypatch0000644000175000017500000000060313615571573025062 0ustar terceiroterceiro#!/bin/sh # # An example hook script to verify what is about to be committed # by applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. # # To enable this hook, make this file executable. . git-sh-setup test -x "$GIT_DIR/hooks/pre-commit" && exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} : ruby-git-1.6.0/tests/files/working/dot_git/logs/0000755000175000017500000000000013615571573022030 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/logs/refs/0000755000175000017500000000000013615571573022767 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/logs/refs/remotes/0000755000175000017500000000000013615571573024445 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/logs/refs/remotes/working/0000755000175000017500000000000013615571573026125 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/logs/refs/remotes/working/master0000644000175000017500000000027013615571573027342 0ustar terceiroterceiro0000000000000000000000000000000000000000 545ffc79786f268524c35e1e05b1770c7c74faf1 Scott Chacon 1194627183 -0800 fetch working: storing head ruby-git-1.6.0/tests/files/working/dot_git/logs/refs/heads/0000755000175000017500000000000013615571573024053 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/logs/refs/heads/test_branches0000644000175000017500000000026613615571573026626 0ustar terceiroterceiro0000000000000000000000000000000000000000 3a9f195756f5bd26b67c5e1fffd92d68d61be14e scott Chacon 1194627522 -0800 branch: Created from HEAD ruby-git-1.6.0/tests/files/working/dot_git/logs/refs/heads/test0000644000175000017500000000101213615571573024747 0ustar terceiroterceiro0000000000000000000000000000000000000000 5e392652a881999392c2757cf9b783c5d47b67f7 scott Chacon 1194560919 -0800 branch: Created from master 5e392652a881999392c2757cf9b783c5d47b67f7 546bec6f8872efa41d5d97a369f669165ecda0de scott Chacon 1194560957 -0800 commit: test 546bec6f8872efa41d5d97a369f669165ecda0de 1cc8667014381e2788a94777532a788307f38d26 scott Chacon 1194561188 -0800 commit: test ruby-git-1.6.0/tests/files/working/dot_git/logs/refs/heads/master0000644000175000017500000002522513615571573025277 0ustar terceiroterceiro0000000000000000000000000000000000000000 545ffc79786f268524c35e1e05b1770c7c74faf1 scott Chacon 1194483057 -0800 commit (initial): example git repo 545ffc79786f268524c35e1e05b1770c7c74faf1 6270c7f48ca41e6fb41b745ddc1bffe521d83194 scott Chacon 1194549616 -0800 commit: again 6270c7f48ca41e6fb41b745ddc1bffe521d83194 0d2c47f07277b3ea30b0884f8e3acd68440507c8 scott Chacon 1194549634 -0800 commit: again 0d2c47f07277b3ea30b0884f8e3acd68440507c8 e36f723934fd1d67c7d21538751f0b1e941141db scott Chacon 1194549635 -0800 commit: again e36f723934fd1d67c7d21538751f0b1e941141db a44a5e945176ff31be83ffca3e7c68a8b6a45ea5 scott Chacon 1194549635 -0800 commit: again a44a5e945176ff31be83ffca3e7c68a8b6a45ea5 81d4d5e9b6db474d0f432aa31d44bf690d841e94 scott Chacon 1194549636 -0800 commit: again 81d4d5e9b6db474d0f432aa31d44bf690d841e94 71894b736711ea0a5def4f536009364d07ee4db3 scott Chacon 1194549636 -0800 commit: again 71894b736711ea0a5def4f536009364d07ee4db3 b1b18f5bea24648a1b08e5bba88728c15ec3cb50 scott Chacon 1194549637 -0800 commit: again b1b18f5bea24648a1b08e5bba88728c15ec3cb50 4ade99433ac3e4bcc874cd7de488de29399e9096 scott Chacon 1194549637 -0800 commit: again 4ade99433ac3e4bcc874cd7de488de29399e9096 ae21cabd23aee99a719fc828977c0df9e8b19363 scott Chacon 1194549637 -0800 commit: again ae21cabd23aee99a719fc828977c0df9e8b19363 d5b9587b65731e25216743b0caca72051a760211 scott Chacon 1194549638 -0800 commit: again d5b9587b65731e25216743b0caca72051a760211 a788a1cba299638a2c898fcfaae1f69a1549853d scott Chacon 1194549638 -0800 commit: again a788a1cba299638a2c898fcfaae1f69a1549853d 0f845a0a981bc2f61354fcdd2b6eafe2b2c55c2d scott Chacon 1194549639 -0800 commit: again 0f845a0a981bc2f61354fcdd2b6eafe2b2c55c2d f125480ee106989ec4d86554c0d5a1487ad4336a scott Chacon 1194549639 -0800 commit: again f125480ee106989ec4d86554c0d5a1487ad4336a a6b25c4b27ee99f93fd611154202af5f9e3c99de scott Chacon 1194549639 -0800 commit: again a6b25c4b27ee99f93fd611154202af5f9e3c99de 9ae1fbd7636c99d34fdd395cf9bb21ad51417ce7 scott Chacon 1194549640 -0800 commit: again 9ae1fbd7636c99d34fdd395cf9bb21ad51417ce7 88cf23d06f519bec7b824acd52b87a729555f2e7 scott Chacon 1194549640 -0800 commit: again 88cf23d06f519bec7b824acd52b87a729555f2e7 36fe213c328fd280f33abe00069c4b92eb5a88d1 scott Chacon 1194549640 -0800 commit: again 36fe213c328fd280f33abe00069c4b92eb5a88d1 53a72df554e585e239e41cb1fc498d5aee9bb164 scott Chacon 1194549641 -0800 commit: again 53a72df554e585e239e41cb1fc498d5aee9bb164 4d35ba97a858072c240d327e3ce30c28b333a1b0 scott Chacon 1194549641 -0800 commit: again 4d35ba97a858072c240d327e3ce30c28b333a1b0 324968b9dc40253f2c52a8e3856398c761dea856 scott Chacon 1194549642 -0800 commit: again 324968b9dc40253f2c52a8e3856398c761dea856 6c2d312ebd67eed4c7e97e3923b3667764e7360e scott Chacon 1194549642 -0800 commit: again 6c2d312ebd67eed4c7e97e3923b3667764e7360e d14cbc09cc34fb6450b2e96432102be51c8292b8 scott Chacon 1194549642 -0800 commit: again d14cbc09cc34fb6450b2e96432102be51c8292b8 a3c1f067074cdc9aa998cb5f3cad46a6f17aab2d scott Chacon 1194549643 -0800 commit: again a3c1f067074cdc9aa998cb5f3cad46a6f17aab2d f5501de98279c6454f510188873476f3ead0cee6 scott Chacon 1194549643 -0800 commit: again f5501de98279c6454f510188873476f3ead0cee6 8125fbe8605d2884e732a185c9a24abcc0d12a1f scott Chacon 1194549644 -0800 commit: again 8125fbe8605d2884e732a185c9a24abcc0d12a1f e576bdfc9ed4627ac954f9390cf7a6151ad2a73e scott Chacon 1194549644 -0800 commit: again e576bdfc9ed4627ac954f9390cf7a6151ad2a73e b6153b8fe540288d66b974ae05113338ab1a61f0 scott Chacon 1194549644 -0800 commit: again b6153b8fe540288d66b974ae05113338ab1a61f0 a51546fabf88ddef5a9fd91b3989dd8ccae2edf3 scott Chacon 1194549645 -0800 commit: again a51546fabf88ddef5a9fd91b3989dd8ccae2edf3 81f545324202466d44115656ea463a5bb114345f scott Chacon 1194549645 -0800 commit: again 81f545324202466d44115656ea463a5bb114345f 0d519ca9c2eddc44431efe135d0fc8df00e0b975 scott Chacon 1194549646 -0800 commit: again 0d519ca9c2eddc44431efe135d0fc8df00e0b975 f2ff401fb3fc81f8abb3ca15247aadc1e22b6288 scott Chacon 1194549646 -0800 commit: again f2ff401fb3fc81f8abb3ca15247aadc1e22b6288 d6f31c35d7e010e50568c0d605227028aa7bac66 scott Chacon 1194549646 -0800 commit: again d6f31c35d7e010e50568c0d605227028aa7bac66 5873a650a91eb238005444d2c637b451f687951b scott Chacon 1194549647 -0800 commit: again 5873a650a91eb238005444d2c637b451f687951b 547a4bae347658f0d9eed0d35d31b4561aea7cf8 scott Chacon 1194549647 -0800 commit: again 547a4bae347658f0d9eed0d35d31b4561aea7cf8 15378a1f3eafe4c5ab4f890883356df917ee5539 scott Chacon 1194549648 -0800 commit: again 15378a1f3eafe4c5ab4f890883356df917ee5539 8dae07ab9d98b5fe04d4d7ed804cc36441b68dab scott Chacon 1194549648 -0800 commit: again 8dae07ab9d98b5fe04d4d7ed804cc36441b68dab e50fa6835cb99747346f19fea5f1ba939da4205f scott Chacon 1194549649 -0800 commit: again e50fa6835cb99747346f19fea5f1ba939da4205f 5b0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa scott Chacon 1194549649 -0800 commit: again 5b0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa 62bb94c53efae4d53fd0649d129baef4aca87af7 scott Chacon 1194549649 -0800 commit: again 62bb94c53efae4d53fd0649d129baef4aca87af7 beb14380ef26540efcad06bedcd0e302b6bce70e scott Chacon 1194549650 -0800 commit: again beb14380ef26540efcad06bedcd0e302b6bce70e f1410f8735f6f73d3599eb9b5cdd2fb70373335c scott Chacon 1194549650 -0800 commit: again f1410f8735f6f73d3599eb9b5cdd2fb70373335c b03003311ad3fa368b475df58390353868e13c91 scott Chacon 1194549651 -0800 commit: again b03003311ad3fa368b475df58390353868e13c91 9fa43bcd45af28e109e6f7b9a6ccd26e8e193a63 scott Chacon 1194549651 -0800 commit: again 9fa43bcd45af28e109e6f7b9a6ccd26e8e193a63 8ce3ee48a7e7ec697a99ee33700ec624548ad9e8 scott Chacon 1194549651 -0800 commit: again 8ce3ee48a7e7ec697a99ee33700ec624548ad9e8 a0b3f35b3c39cfb12c4cc819bffe1cf54efb3642 scott Chacon 1194549652 -0800 commit: again a0b3f35b3c39cfb12c4cc819bffe1cf54efb3642 2e939fd37bbd2da971faa27c3e3de7d5aad40507 scott Chacon 1194549652 -0800 commit: again 2e939fd37bbd2da971faa27c3e3de7d5aad40507 cf7135368cc3bf4920ceeaeebd083e098cfad355 scott Chacon 1194549653 -0800 commit: again cf7135368cc3bf4920ceeaeebd083e098cfad355 631446ec50808846e31fff786c065e69da2c673b scott Chacon 1194549653 -0800 commit: again 631446ec50808846e31fff786c065e69da2c673b 70714b02913c1a249a5ab05021742f0bc7065df7 scott Chacon 1194549654 -0800 commit: again 70714b02913c1a249a5ab05021742f0bc7065df7 82d331cf4d3d4ee537c4f866cab2633b46a8d090 scott Chacon 1194549654 -0800 commit: again 82d331cf4d3d4ee537c4f866cab2633b46a8d090 5c16fb8b958b51f6008f9722b279b1fde0defb76 scott Chacon 1194549654 -0800 commit: again 5c16fb8b958b51f6008f9722b279b1fde0defb76 8b00d915a0ee5aeb32e0b166e1054c2901338c9d scott Chacon 1194549655 -0800 commit: again 8b00d915a0ee5aeb32e0b166e1054c2901338c9d 478e5ee111572790b248eaa99140c5a8f728abc7 scott Chacon 1194549655 -0800 commit: again 478e5ee111572790b248eaa99140c5a8f728abc7 feb2ccf88397c2d93f381176067be2727eba330b scott Chacon 1194549656 -0800 commit: again feb2ccf88397c2d93f381176067be2727eba330b b98f4909807c8c84a1dc1b62b4a339ae1777f369 scott Chacon 1194549656 -0800 commit: again b98f4909807c8c84a1dc1b62b4a339ae1777f369 87c56502c73149f006631129f85dff697e000356 scott Chacon 1194549657 -0800 commit: again 87c56502c73149f006631129f85dff697e000356 291b6be488d6abc586d3ee03ca61238766625a75 scott Chacon 1194549657 -0800 commit: again 291b6be488d6abc586d3ee03ca61238766625a75 545c81a2e8d1112d5f7356f840a22e8f6abcef8f scott Chacon 1194549657 -0800 commit: again 545c81a2e8d1112d5f7356f840a22e8f6abcef8f 00ea60e1331b184386392037a7267dfb4a7c7d86 scott Chacon 1194549658 -0800 commit: again 00ea60e1331b184386392037a7267dfb4a7c7d86 4b7c90536eaa830d8c1f6ff49a7885b581d6acef scott Chacon 1194549658 -0800 commit: again 4b7c90536eaa830d8c1f6ff49a7885b581d6acef 4ce44a75510cbfe200b131fdbcc56a86f1b2dc08 scott Chacon 1194549659 -0800 commit: again 4ce44a75510cbfe200b131fdbcc56a86f1b2dc08 7f5625f6b3c7213287a12c89017361248ed88936 scott Chacon 1194549659 -0800 commit: again 7f5625f6b3c7213287a12c89017361248ed88936 5e392652a881999392c2757cf9b783c5d47b67f7 scott Chacon 1194549659 -0800 commit: again ruby-git-1.6.0/tests/files/working/dot_git/logs/refs/heads/test_object0000644000175000017500000000054413615571573026306 0ustar terceiroterceiro0000000000000000000000000000000000000000 1cc8667014381e2788a94777532a788307f38d26 scott Chacon 1194563974 -0800 branch: Created from HEAD 1cc8667014381e2788a94777532a788307f38d26 3a9f195756f5bd26b67c5e1fffd92d68d61be14e scott Chacon 1194569841 -0800 commit: cool test ruby-git-1.6.0/tests/files/working/dot_git/logs/refs/heads/diff_over_patches0000644000175000017500000000042213615571573027446 0ustar terceiroterceiro0000000000000000000000000000000000000000 6094405a5209406708ffe737077841b45c63fe25 Scott Chacon 1417622944 -0300 push 6094405a5209406708ffe737077841b45c63fe25 1c04149973fb98fe8437fde044eb44cf5eb6ddda Scott Chacon 1417623204 -0300 push ruby-git-1.6.0/tests/files/working/dot_git/logs/refs/heads/git_grep0000644000175000017500000000160013615571573025573 0ustar terceiroterceiro0000000000000000000000000000000000000000 3a9f195756f5bd26b67c5e1fffd92d68d61be14e scott Chacon 1194632890 -0800 branch: Created from HEAD 3a9f195756f5bd26b67c5e1fffd92d68d61be14e a3db7143944dcfa006fefe7fb49c48793cb29ade scott Chacon 1194632954 -0800 commit: added search file a3db7143944dcfa006fefe7fb49c48793cb29ade 34a566d193dc4702f03149969a2aad1443231560 scott Chacon 1194632975 -0800 commit: modified to not show up 34a566d193dc4702f03149969a2aad1443231560 935badc874edd62a8629aaf103418092c73f0a56 scott Chacon 1194633382 -0800 commit: more search help 935badc874edd62a8629aaf103418092c73f0a56 5e53019b3238362144c2766f02a2c00d91fcc023 scott Chacon 1194720731 -0800 commit: diff test ruby-git-1.6.0/tests/files/working/dot_git/logs/HEAD0000644000175000017500000003120113615571573022451 0ustar terceiroterceiro0000000000000000000000000000000000000000 545ffc79786f268524c35e1e05b1770c7c74faf1 scott Chacon 1194483057 -0800 commit (initial): example git repo 545ffc79786f268524c35e1e05b1770c7c74faf1 6270c7f48ca41e6fb41b745ddc1bffe521d83194 scott Chacon 1194549616 -0800 commit: again 6270c7f48ca41e6fb41b745ddc1bffe521d83194 0d2c47f07277b3ea30b0884f8e3acd68440507c8 scott Chacon 1194549634 -0800 commit: again 0d2c47f07277b3ea30b0884f8e3acd68440507c8 e36f723934fd1d67c7d21538751f0b1e941141db scott Chacon 1194549635 -0800 commit: again e36f723934fd1d67c7d21538751f0b1e941141db a44a5e945176ff31be83ffca3e7c68a8b6a45ea5 scott Chacon 1194549635 -0800 commit: again a44a5e945176ff31be83ffca3e7c68a8b6a45ea5 81d4d5e9b6db474d0f432aa31d44bf690d841e94 scott Chacon 1194549636 -0800 commit: again 81d4d5e9b6db474d0f432aa31d44bf690d841e94 71894b736711ea0a5def4f536009364d07ee4db3 scott Chacon 1194549636 -0800 commit: again 71894b736711ea0a5def4f536009364d07ee4db3 b1b18f5bea24648a1b08e5bba88728c15ec3cb50 scott Chacon 1194549637 -0800 commit: again b1b18f5bea24648a1b08e5bba88728c15ec3cb50 4ade99433ac3e4bcc874cd7de488de29399e9096 scott Chacon 1194549637 -0800 commit: again 4ade99433ac3e4bcc874cd7de488de29399e9096 ae21cabd23aee99a719fc828977c0df9e8b19363 scott Chacon 1194549637 -0800 commit: again ae21cabd23aee99a719fc828977c0df9e8b19363 d5b9587b65731e25216743b0caca72051a760211 scott Chacon 1194549638 -0800 commit: again d5b9587b65731e25216743b0caca72051a760211 a788a1cba299638a2c898fcfaae1f69a1549853d scott Chacon 1194549638 -0800 commit: again a788a1cba299638a2c898fcfaae1f69a1549853d 0f845a0a981bc2f61354fcdd2b6eafe2b2c55c2d scott Chacon 1194549639 -0800 commit: again 0f845a0a981bc2f61354fcdd2b6eafe2b2c55c2d f125480ee106989ec4d86554c0d5a1487ad4336a scott Chacon 1194549639 -0800 commit: again f125480ee106989ec4d86554c0d5a1487ad4336a a6b25c4b27ee99f93fd611154202af5f9e3c99de scott Chacon 1194549639 -0800 commit: again a6b25c4b27ee99f93fd611154202af5f9e3c99de 9ae1fbd7636c99d34fdd395cf9bb21ad51417ce7 scott Chacon 1194549640 -0800 commit: again 9ae1fbd7636c99d34fdd395cf9bb21ad51417ce7 88cf23d06f519bec7b824acd52b87a729555f2e7 scott Chacon 1194549640 -0800 commit: again 88cf23d06f519bec7b824acd52b87a729555f2e7 36fe213c328fd280f33abe00069c4b92eb5a88d1 scott Chacon 1194549640 -0800 commit: again 36fe213c328fd280f33abe00069c4b92eb5a88d1 53a72df554e585e239e41cb1fc498d5aee9bb164 scott Chacon 1194549641 -0800 commit: again 53a72df554e585e239e41cb1fc498d5aee9bb164 4d35ba97a858072c240d327e3ce30c28b333a1b0 scott Chacon 1194549641 -0800 commit: again 4d35ba97a858072c240d327e3ce30c28b333a1b0 324968b9dc40253f2c52a8e3856398c761dea856 scott Chacon 1194549642 -0800 commit: again 324968b9dc40253f2c52a8e3856398c761dea856 6c2d312ebd67eed4c7e97e3923b3667764e7360e scott Chacon 1194549642 -0800 commit: again 6c2d312ebd67eed4c7e97e3923b3667764e7360e d14cbc09cc34fb6450b2e96432102be51c8292b8 scott Chacon 1194549642 -0800 commit: again d14cbc09cc34fb6450b2e96432102be51c8292b8 a3c1f067074cdc9aa998cb5f3cad46a6f17aab2d scott Chacon 1194549643 -0800 commit: again a3c1f067074cdc9aa998cb5f3cad46a6f17aab2d f5501de98279c6454f510188873476f3ead0cee6 scott Chacon 1194549643 -0800 commit: again f5501de98279c6454f510188873476f3ead0cee6 8125fbe8605d2884e732a185c9a24abcc0d12a1f scott Chacon 1194549644 -0800 commit: again 8125fbe8605d2884e732a185c9a24abcc0d12a1f e576bdfc9ed4627ac954f9390cf7a6151ad2a73e scott Chacon 1194549644 -0800 commit: again e576bdfc9ed4627ac954f9390cf7a6151ad2a73e b6153b8fe540288d66b974ae05113338ab1a61f0 scott Chacon 1194549644 -0800 commit: again b6153b8fe540288d66b974ae05113338ab1a61f0 a51546fabf88ddef5a9fd91b3989dd8ccae2edf3 scott Chacon 1194549645 -0800 commit: again a51546fabf88ddef5a9fd91b3989dd8ccae2edf3 81f545324202466d44115656ea463a5bb114345f scott Chacon 1194549645 -0800 commit: again 81f545324202466d44115656ea463a5bb114345f 0d519ca9c2eddc44431efe135d0fc8df00e0b975 scott Chacon 1194549646 -0800 commit: again 0d519ca9c2eddc44431efe135d0fc8df00e0b975 f2ff401fb3fc81f8abb3ca15247aadc1e22b6288 scott Chacon 1194549646 -0800 commit: again f2ff401fb3fc81f8abb3ca15247aadc1e22b6288 d6f31c35d7e010e50568c0d605227028aa7bac66 scott Chacon 1194549646 -0800 commit: again d6f31c35d7e010e50568c0d605227028aa7bac66 5873a650a91eb238005444d2c637b451f687951b scott Chacon 1194549647 -0800 commit: again 5873a650a91eb238005444d2c637b451f687951b 547a4bae347658f0d9eed0d35d31b4561aea7cf8 scott Chacon 1194549647 -0800 commit: again 547a4bae347658f0d9eed0d35d31b4561aea7cf8 15378a1f3eafe4c5ab4f890883356df917ee5539 scott Chacon 1194549648 -0800 commit: again 15378a1f3eafe4c5ab4f890883356df917ee5539 8dae07ab9d98b5fe04d4d7ed804cc36441b68dab scott Chacon 1194549648 -0800 commit: again 8dae07ab9d98b5fe04d4d7ed804cc36441b68dab e50fa6835cb99747346f19fea5f1ba939da4205f scott Chacon 1194549649 -0800 commit: again e50fa6835cb99747346f19fea5f1ba939da4205f 5b0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa scott Chacon 1194549649 -0800 commit: again 5b0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa 62bb94c53efae4d53fd0649d129baef4aca87af7 scott Chacon 1194549649 -0800 commit: again 62bb94c53efae4d53fd0649d129baef4aca87af7 beb14380ef26540efcad06bedcd0e302b6bce70e scott Chacon 1194549650 -0800 commit: again beb14380ef26540efcad06bedcd0e302b6bce70e f1410f8735f6f73d3599eb9b5cdd2fb70373335c scott Chacon 1194549650 -0800 commit: again f1410f8735f6f73d3599eb9b5cdd2fb70373335c b03003311ad3fa368b475df58390353868e13c91 scott Chacon 1194549651 -0800 commit: again b03003311ad3fa368b475df58390353868e13c91 9fa43bcd45af28e109e6f7b9a6ccd26e8e193a63 scott Chacon 1194549651 -0800 commit: again 9fa43bcd45af28e109e6f7b9a6ccd26e8e193a63 8ce3ee48a7e7ec697a99ee33700ec624548ad9e8 scott Chacon 1194549651 -0800 commit: again 8ce3ee48a7e7ec697a99ee33700ec624548ad9e8 a0b3f35b3c39cfb12c4cc819bffe1cf54efb3642 scott Chacon 1194549652 -0800 commit: again a0b3f35b3c39cfb12c4cc819bffe1cf54efb3642 2e939fd37bbd2da971faa27c3e3de7d5aad40507 scott Chacon 1194549652 -0800 commit: again 2e939fd37bbd2da971faa27c3e3de7d5aad40507 cf7135368cc3bf4920ceeaeebd083e098cfad355 scott Chacon 1194549653 -0800 commit: again cf7135368cc3bf4920ceeaeebd083e098cfad355 631446ec50808846e31fff786c065e69da2c673b scott Chacon 1194549653 -0800 commit: again 631446ec50808846e31fff786c065e69da2c673b 70714b02913c1a249a5ab05021742f0bc7065df7 scott Chacon 1194549654 -0800 commit: again 70714b02913c1a249a5ab05021742f0bc7065df7 82d331cf4d3d4ee537c4f866cab2633b46a8d090 scott Chacon 1194549654 -0800 commit: again 82d331cf4d3d4ee537c4f866cab2633b46a8d090 5c16fb8b958b51f6008f9722b279b1fde0defb76 scott Chacon 1194549654 -0800 commit: again 5c16fb8b958b51f6008f9722b279b1fde0defb76 8b00d915a0ee5aeb32e0b166e1054c2901338c9d scott Chacon 1194549655 -0800 commit: again 8b00d915a0ee5aeb32e0b166e1054c2901338c9d 478e5ee111572790b248eaa99140c5a8f728abc7 scott Chacon 1194549655 -0800 commit: again 478e5ee111572790b248eaa99140c5a8f728abc7 feb2ccf88397c2d93f381176067be2727eba330b scott Chacon 1194549656 -0800 commit: again feb2ccf88397c2d93f381176067be2727eba330b b98f4909807c8c84a1dc1b62b4a339ae1777f369 scott Chacon 1194549656 -0800 commit: again b98f4909807c8c84a1dc1b62b4a339ae1777f369 87c56502c73149f006631129f85dff697e000356 scott Chacon 1194549657 -0800 commit: again 87c56502c73149f006631129f85dff697e000356 291b6be488d6abc586d3ee03ca61238766625a75 scott Chacon 1194549657 -0800 commit: again 291b6be488d6abc586d3ee03ca61238766625a75 545c81a2e8d1112d5f7356f840a22e8f6abcef8f scott Chacon 1194549657 -0800 commit: again 545c81a2e8d1112d5f7356f840a22e8f6abcef8f 00ea60e1331b184386392037a7267dfb4a7c7d86 scott Chacon 1194549658 -0800 commit: again 00ea60e1331b184386392037a7267dfb4a7c7d86 4b7c90536eaa830d8c1f6ff49a7885b581d6acef scott Chacon 1194549658 -0800 commit: again 4b7c90536eaa830d8c1f6ff49a7885b581d6acef 4ce44a75510cbfe200b131fdbcc56a86f1b2dc08 scott Chacon 1194549659 -0800 commit: again 4ce44a75510cbfe200b131fdbcc56a86f1b2dc08 7f5625f6b3c7213287a12c89017361248ed88936 scott Chacon 1194549659 -0800 commit: again 7f5625f6b3c7213287a12c89017361248ed88936 5e392652a881999392c2757cf9b783c5d47b67f7 scott Chacon 1194549659 -0800 commit: again 5e392652a881999392c2757cf9b783c5d47b67f7 5e392652a881999392c2757cf9b783c5d47b67f7 scott Chacon 1194560922 -0800 checkout: moving from master to test 5e392652a881999392c2757cf9b783c5d47b67f7 546bec6f8872efa41d5d97a369f669165ecda0de scott Chacon 1194560957 -0800 commit: test 546bec6f8872efa41d5d97a369f669165ecda0de 1cc8667014381e2788a94777532a788307f38d26 scott Chacon 1194561188 -0800 commit: test 1cc8667014381e2788a94777532a788307f38d26 1cc8667014381e2788a94777532a788307f38d26 scott Chacon 1194563974 -0800 checkout: moving from test to test_object 1cc8667014381e2788a94777532a788307f38d26 3a9f195756f5bd26b67c5e1fffd92d68d61be14e scott Chacon 1194569841 -0800 commit: cool test 3a9f195756f5bd26b67c5e1fffd92d68d61be14e 3a9f195756f5bd26b67c5e1fffd92d68d61be14e scott Chacon 1194627522 -0800 checkout: moving from test_object to test_branches 3a9f195756f5bd26b67c5e1fffd92d68d61be14e 3a9f195756f5bd26b67c5e1fffd92d68d61be14e scott Chacon 1194632890 -0800 checkout: moving from test_branches to git_grep 3a9f195756f5bd26b67c5e1fffd92d68d61be14e a3db7143944dcfa006fefe7fb49c48793cb29ade scott Chacon 1194632954 -0800 commit: added search file a3db7143944dcfa006fefe7fb49c48793cb29ade 34a566d193dc4702f03149969a2aad1443231560 scott Chacon 1194632975 -0800 commit: modified to not show up 34a566d193dc4702f03149969a2aad1443231560 935badc874edd62a8629aaf103418092c73f0a56 scott Chacon 1194633382 -0800 commit: more search help 935badc874edd62a8629aaf103418092c73f0a56 5e53019b3238362144c2766f02a2c00d91fcc023 scott Chacon 1194720731 -0800 commit: diff test ruby-git-1.6.0/tests/files/working/dot_git/HEAD0000644000175000017500000000003113615571573021502 0ustar terceiroterceiroref: refs/heads/git_grep ruby-git-1.6.0/tests/files/working/dot_git/description0000644000175000017500000000007213615571573023331 0ustar terceiroterceiroUnnamed repository; edit this file to name it for gitweb. ruby-git-1.6.0/tests/files/working/dot_git/objects/0000755000175000017500000000000013615571573022515 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/1f/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/1f/09f2edb9c0d9275d15960771b363ca6940fbe30000644000175000017500000000004613615571573030105 0ustar terceiroterceiroxKÊÉOR02b(J-ÈILNU(Ï,ÉPÈK-W(I­(á›È 5ruby-git-1.6.0/tests/files/working/dot_git/objects/1f/691b879df15cf6742502ffc59833b4a40e7aef0000644000175000017500000000016613615571573030203 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýbNqr~I ƒž‚°^ÿžÍ/”<&ΘÀkø±1 é´-}ruby-git-1.6.0/tests/files/working/dot_git/objects/d7/0000755000175000017500000000000013615571573023027 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/d7/e844eec32d74a3d37c4ce02d7138658e1035d60000644000175000017500000000013013615571573030076 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðý?ïs߇9ûù̘¥÷=Ò®ùp|ÅÛ#{ruby-git-1.6.0/tests/files/working/dot_git/objects/d7/875788aeafdd8e317880c00e3372f683cad91e0000644000175000017500000000013013615571573030200 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aHª˜~vñ¦Çk³—\.×ál}øßdú "½ruby-git-1.6.0/tests/files/working/dot_git/objects/d7/d8a71a719e2a4ca501991a66dab47df804f6ad0000644000175000017500000000002413615571573030313 0ustar terceiroterceiroxKÊÉOR°4a0ä¢%Þá ruby-git-1.6.0/tests/files/working/dot_git/objects/d1/0000755000175000017500000000000013615571573023021 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/d1/4cbc09cc34fb6450b2e96432102be51c8292b80000644000175000017500000000025013615571573030054 0ustar terceiroterceirox­ŽKÂ0 Yç¹(ã !$N⸺hS%®Äñ‰8»7o1®Ë2« ˆm"6—³‡LÄòÄ è/.Ç\Jð>fñšš¬j‘Ã}2a™€“ä$1‡X"bJ’":1´ë»6Û¹ªÚÇ›¸®öÚù7îô¢©¶>œ:óÞO\ÛvjB¬mþ ZnÖû gÈÁÝÅ93ÞQ®òO§!ój¾¼,W­ruby-git-1.6.0/tests/files/working/dot_git/objects/01/0000755000175000017500000000000013615571573022735 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/01/dd46ebe07fc30c10c85c2e926c70f2d7058a6b0000644000175000017500000000013013615571573030214 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a0î;ÍØ|•ݳëí¶ÌíÓ¶ü|ÑÁÏñÉ"ruby-git-1.6.0/tests/files/working/dot_git/objects/01/0b7b79019cb510d8c5849704fd10541655916d0000644000175000017500000000002413615571573027510 0ustar terceiroterceiroxKÊÉOR°0a0ä¢>aD Úruby-git-1.6.0/tests/files/working/dot_git/objects/88/0000755000175000017500000000000013615571573022754 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/88/cf23d06f519bec7b824acd52b87a729555f2e70000644000175000017500000000025113615571573030200 0ustar terceiroterceirox­ŽM F]s .`Ãï ‰1&ždÀvÑÒÐiâñ%žÁÝ÷¾ÅË£¶® Kpá^Š4)esF[|Lh,To+èŠXƒsÖ$ObÇ^6–‹®)°@1fëjÎ6zª1%£1{ít ž<·.jÌò5#µMÞú'¾1·~ '/tµ¾O½ q_>ƒÖ‡Ô::ï"8%¯ê¦”ï(çòO§!Ë&¾’îXÁruby-git-1.6.0/tests/files/working/dot_git/objects/c1/0000755000175000017500000000000013615571573023020 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/c1/3142dd26a1f6f38403a17f6c411cb621b9a1cd0000644000175000017500000000002413615571573030116 0ustar terceiroterceiroxKÊÉOR05b0ä"Ô%ruby-git-1.6.0/tests/files/working/dot_git/objects/c1/8b4e9b0829411705d7fa9a1570a20d887808170000644000175000017500000000002313615571573027577 0ustar terceiroterceiroxKÊÉOR04c0äB…>Çÿruby-git-1.6.0/tests/files/working/dot_git/objects/17/0000755000175000017500000000000013615571573022744 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/17/9ef0e0209e90af00f544ff414e0674dfb5f5c70000644000175000017500000000002413615571573030157 0ustar terceiroterceiroxKÊÉOR01`0ä"Á°Àruby-git-1.6.0/tests/files/working/dot_git/objects/6d/0000755000175000017500000000000013615571573023026 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/6d/e8fb35c2e4a69addd030f2dbb4f73fd4742b5b0000644000175000017500000000002413615571573030527 0ustar terceiroterceiroxKÊÉOR°´`0ä¢5Ö |ruby-git-1.6.0/tests/files/working/dot_git/objects/26/0000755000175000017500000000000013615571573022744 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/26/3e3c527004e7b742ed1f747c1bfb7e11825d7a0000644000175000017500000000013013615571573030064 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°IñWÚ¹ã톼:;S'žK $~î!¬ruby-git-1.6.0/tests/files/working/dot_git/objects/a0/0000755000175000017500000000000013615571573023015 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a0/b3f35b3c39cfb12c4cc819bffe1cf54efb36420000644000175000017500000000024713615571573030530 0ustar terceiroterceirox­ŽQ Â0DýÎ)r˶i’ ˆždÙnl?ÚH²oð þÍ›ÇpÙ÷MíÂE«ˆ•Åû‘(ÎÀ!ÑMSÊ”3 .lÞTåP‹,NdFŠ…CŠ”’ˆs ã4û>-IÐЩk©¶qQµÏ•¸öÖøô¢¥ÔÖºñÙ.õ=T!Öº}:íw;Ž©ËR𓽘Þöç*ÿtš~d;ÌÒ¯Xúruby-git-1.6.0/tests/files/working/dot_git/objects/8d/0000755000175000017500000000000013615571573023030 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/8d/ae07ab9d98b5fe04d4d7ed804cc36441b68dab0000644000175000017500000000025113615571573030463 0ustar terceiroterceirox­Ž] Â0„}Î)rKþ6M@Dð$ëvcûЦ¤[ðøÏàÛÌÀ||T×uíb¼HcÖÆDGS d9z331ÞxàlË#§vl¼‰¶àÇ„¶xÆÂ_¡¤lRòâT²™û3+4F’¶|z[ïÚÚ ä’¾šdŒêk7þ'Su‘eS_ñÜWüruby-git-1.6.0/tests/files/working/dot_git/objects/8d/c79ae7616abf1e2d4d5d97d566f2b2f6cee0430000644000175000017500000000006013615571573030412 0ustar terceiroterceiroxKÊÉOR06a(J-ÈILNU(Ï,ÉPÈK-W(I­(QÐUHÉLK²‹K¸/Ðruby-git-1.6.0/tests/files/working/dot_git/objects/46/0000755000175000017500000000000013615571573022746 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/46/00557506be20eb1501a4f15a52e684d4b9ee610000644000175000017500000000002413615571573027713 0ustar terceiroterceiroxKÊÉOR0³`0䢱W ruby-git-1.6.0/tests/files/working/dot_git/objects/46/a60232117527e7b57ac0dd5ea4af2cd3fdb6960000644000175000017500000000012713615571573030226 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(að’³se˜¦cf¸¤²(ûÓ–ÌHŸ]ÌÓqruby-git-1.6.0/tests/files/working/dot_git/objects/fe/0000755000175000017500000000000013615571573023107 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/fe/b2ccf88397c2d93f381176067be2727eba330b0000644000175000017500000000025113615571573030165 0ustar terceiroterceirox­ŽM …]s .  $Ƙx’é0µ]´4tL<¾è\½Ÿ¼|yT×uíNÒ˜u.0å!ï c ³õðUgaD›J€jÇÆ›h‡¾°6D³OŒ˜³õ†¦)º„#E…/™kÓUý˜‘ꦯýÌŸXj;:Szªm¿4F’¶¼{ZoÚÚìƒÏ@ŸM2Fõ¶?þ'Sõ#˦>uqWuruby-git-1.6.0/tests/files/working/dot_git/objects/19/0000755000175000017500000000000013615571573022746 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/19/9d2f8e60fddd1bb2a1b0bddedde35e5aa8b03f0000644000175000017500000000013013615571573030732 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açž¾2ÀýTœe¸ÈŒ¨_o7¶}9 ãc"ruby-git-1.6.0/tests/files/working/dot_git/objects/ae/0000755000175000017500000000000013615571573023102 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/ae/21cabd23aee99a719fc828977c0df9e8b193630000644000175000017500000000024713615571573030345 0ustar terceiroterceirox­ŽM Â0F]ç¹€%íÄ$"‚'™NFí¢MI¦àñ žÁÝ÷Çe]µS'­"Vx S¤@˜ ÄìÎ^ÓLOÈ3D„ÌNU6µžr¿<1ˆŸ™SôœcŸR– QÐa0tè»TÛ¸¨ÚÇ›¸löÚøîô¢\jëL]øh—ºUˆµ.ŸÞÖ›Gô¢=»äœék7Wù'Ót‘e3_ø«Xruby-git-1.6.0/tests/files/working/dot_git/objects/87/0000755000175000017500000000000013615571573022753 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/87/c56502c73149f006631129f85dff697e0003560000644000175000017500000000025213615571573027452 0ustar terceiroterceirox­ŽQ Â0DýÎ)rKÒ¦Ù,ˆžd»ÝØ~´‘toô þÍ ÇpÙ¶UmãI«ˆvsï0 8CFï$q <3†„©O 9ŒæIUvµ¦°áø ’ŸÙO±Ÿ ’xÈCDC/]JµU{_ˆËn/ÿÂ4—z4§®ü::.õÙU!Öº¾[Û®Ö{ cÀ8‚=»äœik{®òO§iGÖÝ|8|W3ruby-git-1.6.0/tests/files/working/dot_git/objects/e8/0000755000175000017500000000000013615571573023031 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/e8/183f05f5db68b3934e93f4bf6bed2bb664e0b50000644000175000017500000000002213615571573030326 0ustar terceiroterceiroxKÊÉOR0c0äA&§ruby-git-1.6.0/tests/files/working/dot_git/objects/e8/bd03b163f82fba4560c11839d49361a78dec850000644000175000017500000000013013615571573030077 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aè²ßî>ÃúÓò/ï…³¾ì?_9yádvÿÈ#ruby-git-1.6.0/tests/files/working/dot_git/objects/2e/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/2e/20132e8fd40cb3e82248919a10900d31f1816a0000644000175000017500000000006513615571573027633 0ustar terceiroterceirox+)JMU06c040031Q(I­(Ñ+©(aXùèævéÄTÃ^©ë¢§k/½øéôdQ§9ruby-git-1.6.0/tests/files/working/dot_git/objects/2e/939fd37bbd2da971faa27c3e3de7d5aad405070000644000175000017500000000025313615571573030454 0ustar terceiroterceirox­ŽAnà E»æ\ 0€AŠªH9É0 6K=~PÏÐÝñô¨ïû&ÚÅø%ƒY¯ E,ÑÓêkp-¯Pm¢j3Ø„©fdÇêƒÑh 42µby¢dsi-µà¹ˆÞ)¼äÕ‡>©‹èç ©ú~ÒßxàÖ>Îé”®s¡>ÞË`$Ûï¤ý[[›}ð9§o&£æ;Ë…ÿÓ©fÈv¨°*X÷ruby-git-1.6.0/tests/files/working/dot_git/objects/f5/0000755000175000017500000000000013615571573023027 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/f5/501de98279c6454f510188873476f3ead0cee60000644000175000017500000000025113615571573027765 0ustar terceiroterceirox­ŽQ à Dûí)¼@ƒ‰ºF(¥Ð“¬«¶~$Ý@_éú73 GuÛ ËàÂ-%l\3i ΨÀhHÁfƒÞics «‚Åzq`K;KÔ4gN9C‘<¢÷+¿&ŒòìÞü®MvªÌòùFª»¼uú…¾0ÖÖ“ }¢ÚŽ©%$nå3Úv—óì5~É«Z•cæœþÉC¤ìâ çóY-ruby-git-1.6.0/tests/files/working/dot_git/objects/5a/0000755000175000017500000000000013615571573023022 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/5a/28efd2fcf55b7b58eb7cc66b5db836155bc2bb0000644000175000017500000000013013615571573030536 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aŸ÷ἠ뾺üwôc+¹¿õëqöÈ"Ôruby-git-1.6.0/tests/files/working/dot_git/objects/a9/0000755000175000017500000000000013615571573023026 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a9/e2f17562ae78a75dc855bb3dc9e87364195dcf0000644000175000017500000000002313615571573030264 0ustar terceiroterceiroxKÊÉOR04b0äB@/…ruby-git-1.6.0/tests/files/working/dot_git/objects/a9/e2d9b71b616531f04a65ae5b972ba5d1f2cb930000644000175000017500000000007213615571573030230 0ustar terceiroterceiroxKÊÉOR01gÈHÍÉÉç*ÉÈ,VÈ,æJTHËÌIrK@܂҅ŒÔ" @¾BqjbQ2÷ë+ruby-git-1.6.0/tests/files/working/dot_git/objects/ab/0000755000175000017500000000000013615571573023077 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/ab/16bc1812fd6226780a841300a2432dfd0c67190000644000175000017500000000013013615571573027701 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aø³eþÊ)!?X*g qMz»gI{åjþµ"§ruby-git-1.6.0/tests/files/working/dot_git/objects/4b/0000755000175000017500000000000013615571573023022 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/4b/7c90536eaa830d8c1f6ff49a7885b581d6acef0000644000175000017500000000025413615571573030343 0ustar terceiroterceirox­ŽAŠÃ0 E»ö)|)r,Ë6”a`N¢(J›Eââ¨0ÇÓ3t÷ß_<ž´}ßÌODëª>Ç9ä€ 2 2Æk]KAœ(–º* ,)¸'w=Ì(hˆ1Ì¡`,ë1sž(/댜%/…¿ìѺ?¥™ùßK;üí”÷øá;/­ŸÃi›¼Î«´þ¼ve±¾ý Ú¿}VJÅApã妟tº²î~*Vfruby-git-1.6.0/tests/files/working/dot_git/objects/cf/0000755000175000017500000000000013615571573023105 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/cf/b9952c3a28831144a0fac7ea5a2d8517f466c40000644000175000017500000000013013615571573030150 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a{lÜ/¸åÿñ ?®Þ.-X ïõ"Yruby-git-1.6.0/tests/files/working/dot_git/objects/cf/7135368cc3bf4920ceeaeebd083e098cfad3550000644000175000017500000000025113615571573030460 0ustar terceiroterceirox­ŽK 1D]ç¹€’_§ ˆž¤íîÑYÌdÈDðøÏப ë²Ì݆œ½©Zdâ4|IÅÀTCpSNàsBtf£¦ë8j‰e’ˆ‡¡‚~" ÈQ£( IràÐл¿j³;×ÞíýE\W{Ùùnô$©mÌ>ó{?qmÛ©)qoóg´åj½/ RÉíÑ3cæ]ÿÉ4Cd^ÍX7ruby-git-1.6.0/tests/files/working/dot_git/objects/83/0000755000175000017500000000000013615571573022747 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/83/c6a1f0d7d8df18a9d9bfe917707aec378684180000644000175000017500000000012713615571573030215 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a˜ñ;+#5yšu]¨nIaÄÚ=2Ú×îC!ruby-git-1.6.0/tests/files/working/dot_git/objects/de/0000755000175000017500000000000013615571573023105 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/de/d54b45e4d49816f6d4256e74d45ba2bb3513570000644000175000017500000000013013615571573030101 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a`ûòb…Ã%û«§tFÅŠ5UI~ßø—"ruby-git-1.6.0/tests/files/working/dot_git/objects/de/996da0ef3dcee1a28aef9243aa3e255eb825b50000644000175000017500000000002413615571573030534 0ustar terceiroterceiroxKÊÉOR°0c0ä¢z ruby-git-1.6.0/tests/files/working/dot_git/objects/a4/0000755000175000017500000000000013615571573023021 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a4/4a5e945176ff31be83ffca3e7c68a8b6a45ea50000644000175000017500000000025413615571573030413 0ustar terceiroterceirox­ŽAnÄ E»æ\ #iTUêIÛt²HÔãõ Ýý÷Oûqìæ—œßl¨ú9´ (EªR·¦’rÄ’K‚âž4ô4¯17\b© HFFY`×)Ù@kH ›£—=úðw3ÿõ î§¿_ü7>雤k:mç×uã>ž·¡Ä6öŸILJ¨iM5ÇÕ¿‡‚›ï,7ýO§›!ûé~´;W˜ruby-git-1.6.0/tests/files/working/dot_git/objects/50/0000755000175000017500000000000013615571573022741 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/50/3d77289b054742f507d8a8ce7cc51d3841d5b90000644000175000017500000000013013615571573027747 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØ®ònB®jâ!Ž]“¼îr®žzf3æ±!Fruby-git-1.6.0/tests/files/working/dot_git/objects/d6/0000755000175000017500000000000013615571573023026 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/d6/f31c35d7e010e50568c0d605227028aa7bac660000644000175000017500000000025113615571573027773 0ustar terceiroterceirox­ŽA Â0E]ç¹€’I'i "‚'™L3ÚE›’Žàñ žÁÝñx\×uQëc^Äu³×ƒãNOšk;ºS~®m¿´B¬mùtZo`€SÄhÏ.9gúÛ˵üÓizȲ™/‰NX»ruby-git-1.6.0/tests/files/working/dot_git/objects/d6/a3aab3e38bc16688b4e636a91e4624342108780000644000175000017500000000013013615571573027732 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(apé̱™œ»µoIë%á[;/Ú¥iêµ!Cruby-git-1.6.0/tests/files/working/dot_git/objects/d6/46165a1e3a89399f72c1ffc1fcd76814c5ce1d0000644000175000017500000000023113615571573030252 0ustar terceiroterceirox+)JMU041f01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aè=>ëybÖ~9]ߨéWÓ>múvî3TYZN~b‰^AbIrÃΖ„*Ç3ò1ZžŠ&,·œïý² b]qr~I ƒ«Â¡Ùqswn¸oS½º¢@´N–á0~‘>æruby-git-1.6.0/tests/files/working/dot_git/objects/6e/0000755000175000017500000000000013615571573023027 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/6e/d281c757a969ffe22f3dcfa5830c532479c7260000644000175000017500000000002313615571573030121 0ustar terceiroterceiroxKÊÉOR0a0ä2äÖjruby-git-1.6.0/tests/files/working/dot_git/objects/f7/0000755000175000017500000000000013615571573023031 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/f7/5f313ca30e534aa9c42463e85108e682d3a14a0000644000175000017500000000013013615571573027776 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a8hètWmá·Ï-Ì ëse¶)î\xóH!ðruby-git-1.6.0/tests/files/working/dot_git/objects/6c/0000755000175000017500000000000013615571573023025 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/6c/2d312ebd67eed4c7e97e3923b3667764e7360e0000644000175000017500000000025313615571573030125 0ustar terceiroterceirox­ŽKnÃ0 D»Ö)tõ±E€œ„¦èÆ [L=~„ž¡»y³x3Üö}S‹)}i±àj Iyeì€sd”‚‰gX±Î3¥Å¼©Ë¡Öc()/¥rŒ~EŽHY|ŽÉ—ÌsrUh€¡K_­Û“›ª}¾ˆÛaï'ÿ…ýPmýNÝø:'ný=u!Ö¾ýÚ¿­s%ıÐÞ ˜ÑŽç*ÿé4ãÈv˜šWruby-git-1.6.0/tests/files/working/dot_git/objects/49/0000755000175000017500000000000013615571573022751 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/49/b352299735fda3a333c69c6273178b0c3dfa080000644000175000017500000000002513615571573027741 0ustar terceiroterceiroxKÊÉOR040a0ä¢zeQruby-git-1.6.0/tests/files/working/dot_git/objects/27/0000755000175000017500000000000013615571573022745 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/27/c0c003dda3e59ba236f53f6661faaf74432b5c0000644000175000017500000000013013615571573030212 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aˆÙËô\³~¶Éå"ç¥ w$—â* éruby-git-1.6.0/tests/files/working/dot_git/objects/e3/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/e3/6f723934fd1d67c7d21538751f0b1e941141db0000644000175000017500000000025213615571573027737 0ustar terceiroterceirox­ŽM Â0F]ç¹€eÒL~Á“L'‰í¢MI§àñ žÁÝ÷¾Åãq]×EôèýEZÎÚcv#12xÃÅpÙ¸TRôe `’AµSË›hH#c(Æ&›ÉÂ1b‰Ù'ÁAà¨è”¹6}pѯ™¸nú~ðo<éM©¶£;eáó¸¶}h™XÚòé´>´17txóÖé+DÕß^.ùŸNÕC–M}tžWcruby-git-1.6.0/tests/files/working/dot_git/objects/e3/ebef76525fe9e6e8dc739934a08512dff777c00000644000175000017500000000002413615571573030274 0ustar terceiroterceiroxKÊÉOR°0`0ä¢.1 `ruby-git-1.6.0/tests/files/working/dot_git/objects/1c/0000755000175000017500000000000013615571573023020 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/1c/c8667014381e2788a94777532a788307f38d260000644000175000017500000000025213615571573027412 0ustar terceiroterceirox­ŽAŠÃ0 EgíSøìÔ–e(CaN¢HÊ$‹ÔÅVaŽßÐ3t÷ß[<>·ãØÍÏ¿¬«úšç‚%ëÌ$ .Œ’X¤†°ÆJTá’¸¸u½›Ï eXˬ+¥(Yj¡ Ô FÈÊBAÔÑÓ¶Öýàfæ7âv÷×Áïq£?’ÖÇÙ´ŸcâÖSWbëûÿIDZ¦ 1"úï€!¸ÓžÏM?Ùt¦ÃÜ e>X²ruby-git-1.6.0/tests/files/working/dot_git/objects/1c/fcfba04eb4e461e9f930d22f528023ab1ddefc0000644000175000017500000000002513615571573030514 0ustar terceiroterceiroxKÊÉOR044a0ä¢7Ëyruby-git-1.6.0/tests/files/working/dot_git/objects/1c/04149973fb98fe8437fde044eb44cf5eb6ddda0000644000175000017500000000025713615571573030423 0ustar terceiroterceirox¥Ž]jÃ0„ó¬SìV¿+A(}è =Àj½N ±e„=~ í ò4óÁ0ÒÖuàb>® (,¥¦„¹$*¤E¤p­> fˤ‚ÓÕš»n–0rt`"Ìó¬ä ‰r°5DI~V ?ǽuønUûhð¥òì›þÂuú§KÿSŸ·•—ÇEÚú6XJÎÛìàŒÑíqwèÛCægŸx,Û vr‡yy¨y;Saruby-git-1.6.0/tests/files/working/dot_git/objects/a1/0000755000175000017500000000000013615571573023016 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a1/15413501949f4f09811fd1aaecf136c012c7d70000644000175000017500000000002513615571573027772 0ustar terceiroterceiroxKÊÉOR042a0ä8²¼¡ruby-git-1.6.0/tests/files/working/dot_git/objects/a1/a3069efcc64330fb6c66004e69b870da3d61860000644000175000017500000000002413615571573030067 0ustar terceiroterceiroxKÊÉOR03b0ä¢u? Mruby-git-1.6.0/tests/files/working/dot_git/objects/62/0000755000175000017500000000000013615571573022744 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/62/7e1097cda3b2e3ad6ba4d3772c0985e1ff349c0000644000175000017500000000002313615571573030234 0ustar terceiroterceiroxKÊÉOR04`0ä‚A(Hruby-git-1.6.0/tests/files/working/dot_git/objects/62/bb94c53efae4d53fd0649d129baef4aca87af70000644000175000017500000000025113615571573030542 0ustar terceiroterceirox­ŽA E]s .`C§@!1ÆÄ“ à]´4tšx|‰gp÷ß_¼<ªëºˆï/Ò˜ut\¼w¹xNÙÇ`ÏÁR 8€ËÌ«o¢]2‰çŒ3QdÊÉdv%Œ&ƒJÊ@± ÂS޵郪ˆ~¾‘ê¦oýÆ_˜k;ºS:jÛ‡ÆHÒ–O§õ®Ç1Zg£·Q_M0Fõ·— ÿÓ©zȲ©/…ìYþruby-git-1.6.0/tests/files/working/dot_git/objects/62/70c7f48ca41e6fb41b745ddc1bffe521d831940000644000175000017500000000025313615571573030240 0ustar terceiroterceirox­ŽM à …»ö^ Á¿ÑJ)ô$:[‰A'ÐãWz†.¼÷Öm+,÷nDÒ%ÔÉkœN!§ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a(<¹È¢ò?׉#³']dÿücN®´î$("¶ruby-git-1.6.0/tests/files/working/dot_git/objects/15/0000755000175000017500000000000013615571573022742 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/15/378a1f3eafe4c5ab4f890883356df917ee55390000644000175000017500000000025113615571573030126 0ustar terceiroterceirox­ŽQ Â0DýÎ)r%i7éDO²Ùl´mJº‚Ç7xÿf†áñ¸®ë¢vˆñ¤MÄ&? L"D‘‹䑿&Ì ýU(!NÌNM6µ&‚D2—g‘ìòòè„èIh₆ÞúªÍ\UíãE\7{=øîô¤\ÛÑ™ºðû¸pmû¥ ±¶åÓÛz³ÞÏ`Ž€öìÐ9Ó×n®òO¦é"Ëf¾Ü{Yruby-git-1.6.0/tests/files/working/dot_git/objects/15/34a65657edf4e5caaa5ce35652dca5e4c7d3160000644000175000017500000000013013615571573030306 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(axÉûB­¹øÉߨÆÛKbÝ߈5Úö¾!xruby-git-1.6.0/tests/files/working/dot_git/objects/63/0000755000175000017500000000000013615571573022745 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/63/1446ec50808846e31fff786c065e69da2c673b0000644000175000017500000000025113615571573027761 0ustar terceiroterceirox­ŽM Â0F]ç¹€2ùo@Dð$ÓÉD»hSÒ<¾Á3¸ûÞ·xøƒÓg˜ÔxG¹ð?j„,›ú³‰X÷ruby-git-1.6.0/tests/files/working/dot_git/objects/64/0000755000175000017500000000000013615571573022746 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/64/d0c52ac4c061cf1705e3005dfd86fb70374a140000644000175000017500000000013013615571573030044 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(ax!aÏúõvÆæÉ~“¿ìÏ~«½-åÁVúc#Iruby-git-1.6.0/tests/files/working/dot_git/objects/cd/0000755000175000017500000000000013615571573023103 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/cd/0d59357b36a447ff27a7c176b46e0a319b42df0000644000175000017500000000002413615571573030154 0ustar terceiroterceiroxKÊÉOR°4`0䢩ó ˆruby-git-1.6.0/tests/files/working/dot_git/objects/cd/4291452a61ff8b57cf5510addc8ddc5630748e0000644000175000017500000000013013615571573030235 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aX±}“¢«Ïõ=†›.NÚíÿ£ë—!Èruby-git-1.6.0/tests/files/working/dot_git/objects/9b/0000755000175000017500000000000013615571573023027 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/9b/5149aa4ace4ef69461803b0ccbb21139e126260000644000175000017500000000013013615571573030053 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðòKÏú§õï¼²0ó„Ó.<»ÀëÁ!°ruby-git-1.6.0/tests/files/working/dot_git/objects/be/0000755000175000017500000000000013615571573023103 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/be/b14380ef26540efcad06bedcd0e302b6bce70e0000644000175000017500000000025313615571573030566 0ustar terceiroterceirox­ŽKn!½æ\ ÍoÉŠ"å$ìYÌ`1m)Çò¼{¯¥â¾ï›hãEF­º!:²m!äLÁ¡ ¸”P2ÅRΑª/«zbÔCt´9'ÏÁՆɃkÅDŸ Ù”Q›c]Ð…—<úÐ'wýû÷CßN~ÜQú8§S6~Wîãy,cû›oÿÖDÉŸb0úˬƨIg¹ÔO:Õ ÙõïLY<ruby-git-1.6.0/tests/files/working/dot_git/objects/f9/0000755000175000017500000000000013615571573023033 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/f9/bce8995109cfab475d043a7dd9156d5e574ed30000644000175000017500000000002413615571573030262 0ustar terceiroterceiroxKÊÉOR0·`0ä¢&— ,ruby-git-1.6.0/tests/files/working/dot_git/objects/2c/0000755000175000017500000000000013615571573023021 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/2c/ef51480d44dcc262d16be2812c692d940d5f290000644000175000017500000000013013615571573030070 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸73wÁ{Ûsu½Ÿä¼ÊN5n‡êV A# ruby-git-1.6.0/tests/files/working/dot_git/objects/24/0000755000175000017500000000000013615571573022742 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/24/5582a71306d7360e40c07cd7d849a1aa14a31e0000644000175000017500000000013013615571573027705 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aab°ˆ±æÖœSÕþæëœ•>F¿÷ÍÐ ­ruby-git-1.6.0/tests/files/working/dot_git/objects/b0/0000755000175000017500000000000013615571573023016 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/b0/3003311ad3fa368b475df58390353868e13c910000644000175000017500000000025313615571573027567 0ustar terceiroterceirox­ŽM Â0F]ç¹€’éä§"‚'I&‰vѦ¤#x|ƒgp÷½oñxÜÖu=y’^ŠOÅçd1[6ÄÙƒ@1$š'ogL6“… Õ{ÙDW°`êÐU_ftD%QrœóTS0ѱŠoyµ®n"úñŠÜ6}=ø7îñsëÇpÊÂïã­ï—^"K_>ƒÖ› ë,yúlfcÔxG¹”:ÕY6õ:¿W.ruby-git-1.6.0/tests/files/working/dot_git/objects/b0/ee249c5e5cc9464f3bc0034ab05632dcb87a230000644000175000017500000000013013615571573030210 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØ6£ú ‚ÔÅé%GløV°÷ç^Ï> ï!!zruby-git-1.6.0/tests/files/working/dot_git/objects/45/0000755000175000017500000000000013615571573022745 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/45/20c29b885e9db9b0df3c7bab7870157e1d00c30000644000175000017500000000012313615571573030150 0ustar terceiroterceirox+)JMU07d040031QÈK-OËÌIeˆuckb7c±Ÿ÷V+Ù,M6cÒ …¥P%%©%z%% 6Ç¥…o²=q½T{ï¿Ã­‹b¶žÔ<µruby-git-1.6.0/tests/files/working/dot_git/objects/45/b983be36b73c0788dc9cbcb76cbb80fc7bb0570000644000175000017500000000002213615571573030403 0ustar terceiroterceiroxKÊÉOR0fÈÈä£Îruby-git-1.6.0/tests/files/working/dot_git/objects/48/0000755000175000017500000000000013615571573022750 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/48/bbf0db7e813affab7d8dd2842b8455ff9876be0000644000175000017500000000016613615571573030511 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aè=>ëybÖ~9]ߨéWÓ>múvî3Äœâäü’W…C³;âæîÜpߦzuEh,Ãa;ò0)ruby-git-1.6.0/tests/files/working/dot_git/objects/60/0000755000175000017500000000000013615571573022742 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/60/94405a5209406708ffe737077841b45c63fe250000644000175000017500000000025713615571573027456 0ustar terceiroterceirox¥Ž]jÃ0„û¬Sìj´»ú± „z‚Ü@^­Cl¡@_Csƒ> ó1ÃHÛ¶uùùctU(Á >£rž§T# ÖzHJ 3:ñ¢XÌ3wÝxõl1-Lö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(að97ÅhÓ–D#¯ÄDùDç!>7øäï 0ruby-git-1.6.0/tests/files/working/dot_git/objects/e5/0fa6835cb99747346f19fea5f1ba939da4205f0000644000175000017500000000025113615571573030177 0ustar terceiroterceirox­Ž] Â0„}Î)reÓnó"‚'Ùî®Ú‡6’®àñ žÁ·™aøø¸®ëb~ˆñ`MÕ8My Fˆ’ÆŠÀX’d,ˆÒÔ½¨éf> )$š‹”ò˜x 42»É70:õ]ª=¸¨Ú相lövðo<èES©GsêÂçÑq©{W…Xëòio½[ïH0d{uèœi´•«üÓiZȲ™/†§W’ruby-git-1.6.0/tests/files/working/dot_git/objects/7c/0000755000175000017500000000000013615571573023026 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/7c/60c6ab64c74d52f973d18cd1933318a8d9ae2e0000644000175000017500000000013013615571573030163 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°L{ù‹{þËËïõo-›lo˽Cû0ø}"ruby-git-1.6.0/tests/files/working/dot_git/objects/7c/076f209839d7f910e8c84e41cc94898287ef450000644000175000017500000000013013615571573027726 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¨ßÿn~GÓÚ…o\LŠ^æy3ÇK â"¹ruby-git-1.6.0/tests/files/working/dot_git/objects/7c/ac4f8d519d524ed025732ee220f6451665a7700000644000175000017500000000013013615571573027732 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸~c¹Tá<-Ÿ¥Œ3¥Ònm©ýÁòm-ò>"ruby-git-1.6.0/tests/files/working/dot_git/objects/c5/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/c5/a3fdb33f052b8f17dac83c533b62244226f4ba0000644000175000017500000000013013615571573030207 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aP.•ûvðßE¯‡ VßÊמ¼ù"Œruby-git-1.6.0/tests/files/working/dot_git/objects/8e/0000755000175000017500000000000013615571573023031 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/8e/33476f852fffb06e22b244c0f97093588567ee0000644000175000017500000001601613615571573030000 0ustar terceiroterceiroxí]msÛ8’¾Ïþ˜¹Úµ|–h‰zŸ—Ýqle£;ÇNÉÎææ¦¶¦(´¹‘E­HÅñ¥òßïé@"%Ñ“än¶.©Ù"Fw£ÑènÐÓY<ífo0ø— CÑhÜF©ðNfÑôä×$]Jïþ×`µ˜É÷Îß1-~Íù^ø]¯ßiùŽã¹² ¤h5›½Nç ÑhlÃxp||¼ëO?‰†Û«Ä1þôÓ8÷q°šIG¾_ÄË4?Šs¦îûñÎ[ŠUÍðl)ÿ±Š–²vHß¾?hPãDz7IÀÌå¶ øÍ2J·?è6>Þ†ÙÉøgãfð2Ükp;&LSp¢ùÄ IMͶžÍˆƒ­’[xI’Þ-ãÕí]Q|ùF-C¯+‡ƒ^ÇqÚí¦ïvúÛe¸Ñ½(È –f·Þ‡4és‹4_âE1ÍŒåv³ôæI/ïË—šÆL¥àköæ:ìTš Ö[¤ÕE6ÈnѹoµhÖ7ýv(ÛÒq†MoàÛYo÷-òÝne¦·ë­&¸Þ®·;`{qM´îƒáæWÇürz)-˜Üw’ sn4²E"ßÉyš9#úet¥©\b…D¡¨}39³(Iå\.ÏâÕ<=›O€*\Íý4Šç5©:×Eú¸GâÃÁ±À¢NW˹ÐM¶¤Æ0ÎLÎoÓ; ÷ÿëAoaݼ™“Èt|/ƒs9%­¡… \ çùÁÑxÝËx•¢©.šdh<ž¢FìϤ·,Ž—l˜o©Eù!¹Õ ™ÿ¯Ù@Û2P&›ÖÂNÕV+Ó’¼†õ£¹ ôÀƎɼf¦Ô—²A=dŒ9 5)jŠhΫeœh‚¿þþ (¨Ó8ÁïÜé#8–QÍoÏ¥¤'¼Ö9]Ýê>™Å·µÃõ´Ø€rƒf;OÂ@YûqÈY"Eº|TŠe೩l‡G¹‘? ßKý;Q“K=KÓ3Ó[<'uÀ7 ·Y@u¡„F: åÙ4É(vš¶ŠÙþÝjþv<çÍ¢ –Ð:¬«g48ð¬Aãù(Ï€KìÙuÁ²!i'G™Ùâߨ'Â7‚ß Gýrˆtgrþ‘&0Ñ_ªF¦4ˆ‚2þE/Ý Ð½§«0”Kg±JîT ØºÕef½hjí&mk§­púpU¦Mß »;¶¹\碱Í5“8{rXðÙ"cKR*x,7fË"`­W»º½ÚŒ_¢|¯lo+®7¶5èï{é+«cšŒuíÉñÂØáÓ÷¨(g«ÅˆžèÐm:NغƒÁtû–j÷-JÙnå-µ_ïaGí×[néŽúF;ˆ°ùÕ1¿\ë5÷4á÷-5ZÜÊrÙjº¶Ë ?/X3?ËàëZ­!™»–v×6ÌÀ3jñ‚ü€„ìÙ3¶ ÆÊf<5PÚrœœd-ÂO±7E‰ð‹Y$‘ÆZ½$p¦wäã‡|<\J1S2MèÍa·æ¾ŒÃ A+0«ÑsÇX×ojéF³@ÌtŽØÖš+µžxÛb¢¸O¶gí°²ÁÕ~Ó\>d“ÊÇz'0Å(q~}ÐZk4Ôî±!ê°iS™¤'ItÃâ ýÞP¢kL£ÛÙpµ`+@éÅ+ÛýA_â(2ð·ånØè*xÔB®É‹ºEŠéÒ§2ܼŸÅ÷÷ñÜVyÇ9ñùaædáÈ"—© £ž›wÅ@=ÉÌz£à¿l û¡—áæÿ‡™í ’™Â–¹ðµù]s?°•7Þ*‘ÁnIåàŒ¡öÛý~ßq‚NS†~EYå1í–V–åe&ÙxÞÆéh€ ¡ù‚EýÒ{+E²ÂB"ˆç‡©¸’„ÖµVÁÇöeÕìE³¡Îš‘‰Ù¥Íª/dÆmx¤7e°F¦,“IŸ„g:²¿ÄèÍf2 ÇÖÄ´ˆ]êÇæÜD–0ç"mö"ZȆâ€Öv ¼k„ÞéI9ÄîÚœÊA»×ËﮕGÖ1 êð,|—ãBôI‹õs,Uí‹ØR6Þ±›‚BÙÊ6Ö¹ ؘÓl•—aV:aGÛì1¶G‹Ø<ØÝìÑvz…ú¶Ú– ,UU¤Qç«Å^-²9“)6æ0B@.²Šv;Z·ÂÞ`Øî [êŸ"îP9™’“@¾;™¯f3>eµàª¹â¸Yo’¾4`ÎâÅã2º½KſLjWÔÅxî;ƒEˆa–â’ˆòãyºŒ¦+¸ vû“îûJ.É„ÀC!Àrú(náÖcFu.¥p!ü;oy‹C|oþ(r™ C?+p?DPC+/ˆEó¨—~J˜ “Âx6‹ˆíi±wù ÀƒÜ`žÞ4~G7j·”³$X6L“ºnJî`›ÅTj>Ê€qóôØÌ^MÉ­L#ˆ…¢ÖäØnÎ|­[7/FâúêùÍ›ÓÉHŒ¯Å«ÉÕ_Çç£sñíé5¾[oÆ7/®^ß@LN/o~WÏÅéåÏâ?Æ—çu1úÏW“Ñõ5“r5ã—¯.Æ#<_ž]¼>_þE{}q:¯^O^]]@Æ9P_Ž/ŸO0ÒèåèòÆÁÈŒíòJŒþŠâúÅéÅyú3™`¼‰8»zõódü—7âÅÕÅùŸ@á鳋‘<»8¿T:v~úòô/DéD\ø ƒj*ß¼ñ£ñ%è§g7ã«KâÑÙÕåÍ_½½šÜ «âÁ¾_êât2¾&=Ÿ\½¬ b1z/©ïåHa"ö3õ™”$Œí5˜Ñt>:½>ˆí2×Âfà:3I£¥’|/ÕÇ,g±ŒÓ˜b›mÀ0X/P<c =5ÁÔ„1Ýyó[ÒmZ²I¼ZBu±Ø`çá*ì{}UØëíÒ1ÐÞé;o˜â ŽD¨h9f Cçt¹‚ÿf࡜aIQ8²ÉOµûsÍgCÇGŸ›ÈßþxÀAÊuÆÄlÑæ(é¨^kš,V“ChÅ¡mò ÇÇ4 þ/E@ _ÆO@’1ÅlÂ5{TãØLyÊô Ò’é[òPçнg ÛÍr… †J(‰×ê$i’6ò6ƒïÈfíøn;É Ö])B Š)䬰ˆHü |/¢ãcÍ4s2óf Hð"ª=>úFY„Ú!DÊš ¥Qjí qèÍjÍ:@²¦áL˜rÀ<ºx X(«©¢yý]ÏùsïÏâDy¢ûÈן>RæV˜W©X7…†±PvÎëÁKq^RKÇ'¤ÅNúfô²Õš}O!2½3äFÄéA#Èt(×òlC¶jN]¸@ʦS'žC]°å8ÚyÞ…$?O…´nÚŽ&°ÙÅÚ®•À¢å™¡åÙZrH6ii+>eó¨ §ÉÚ†1'ÅMR„Zó.H g|£xŠÂËq<ÏÂ"¿sÀŸ$ž"îœ,÷ãÎ)ø>ºsÀe¸«žÚeC.—ñ²×1€…»Ý{z/é ë~7軩ãøý 7íOh¨ *vú²ñ[å1b«È¢íÊC©ƒjÒA¿"\ò3pˆ¾Ô2‡\ÿ áÂTFP~Y&ì‡a£ J»òj›RXÈ¥y‚”©£Šp5œ‘éttCT£t{á 赞"SƒiwD—Ê|u¤q9ΟÔƒ±ªxœW?Çù†Ãm *la!" L£({e¨'äIU“r%x‰šˆ=R³áLØÌ•=é»(ÁëúÃi8¬(µ¦=RËÁòºûrRØ?'¶‡Þf¼’–¡iü Ñ÷âT¥ƒg.6_5ÈN¼°®IY®!µ4›½°ÓP¥Ðê7[ÞÐ{‚4-\äiAëà:eÂ\ «°´ö/ uþ3rúÜBÜs(»_>^óú~z {©cÿ c²P·º-]€Õz=¯Ki2o {a£¡:¶Ý"-ŽþÏ'T{› £e’š=›ÂsúÎq³º €Í—‚_wR…¿ ¸ @}“Sm¿4ý!BÅ¥ôWKŠñï^ºÛ;i¡»ƒaË zXÅ-$5¦Wñ´¥_˜„Úcûœå¦OhÅÞý 쾑¼Ô£ÈyÍWñ*™!ô¤H–U€»½E…2e5`*ß§7‘ÿ–wpd38Ù¸ÍAJÉþŽó%Sª<,U=? v/ØW¤¢3$5•‰B“‚nõe’8Üó\. ~•1ÑÈJ›÷jžÜEaÚ÷‹ô±¡ÊÛ¸p~Ûâ.ï`6Øëô¡:ýÛï¶7J‚Ÿˆr·Úl¡ƒ-U&»º>q¯Ê0ÿסíwP‹r=ÛÆNƒrGV{Æ%~µæÑ«¹çÄááÑ:ôò[$å‘shy@Û~äL?Ü_ÊCP@YP‰×ÎüŒŠ.É?h!ˆù$ ¡4–ž/w›#\kÇ ÃÐ#÷Ào ¼Š†¥a5ÝÈÑÀšÁµ\.}V4&mGp=ç‘àâÎVŒeI¢Û9 ]a?(eˆ[¯],M¡Ž#¸ØÛr&dõ)¤ŸBC8©3%?#Q«Ï˜¥Weއv‹ŽÿÝÝ@ A³ìI)´²N´oPû îR~ ]¾ô–o¿Ôç£90AFYˆ].9Â'‹"æ\(èàús, [ëÅ?”¡„þƒªðR.líâ‚ .ÁÀº8̱™ùAOئ²0vê0ƒEœˆ?ýÈö]‡ÅŸû¾SÊßÖVgØc1ÇtPe­Qèß©x­ˆŠëÚÔÇHDƒ†æúë ‹ªž‹cEŠMIÖ]*Á¢=ÈÐØ hM¡çÖíÄ¢$›þ­Y„ êGC·Ò,rœEðç@W÷RòÝî%ÁèuÜv†8¶¡¹Ûv[a»š›¿Æ²{ñ®áxÅ’SÿE\ûâòQOHãö¬Õ’úÇJ®è¶É/¸*°¾] ŠÖñ¸ù=ò™TÀŽÄk~W™Ÿ*¦×mL½$òw g £…Ó´:ÓENngà·ëÏ]jÛ²[Xv Ç‚cálV *®¨rCÌ? ?Á0©‡˜Ëú€lC”U,©Â4J8»ŒˆL¼©pÚï*ú¶¾ªÉYÀÑšF³(}Ü#›MX-£ž9D™w3ôjÇ*·QÀ¶GVøÿ·2Ãm!”Ü4(‚·GbyH³¦†S·ß ©¸«çµ†Uåµk´6 YVÿ;‘ªO³„´1+·Ø^©ê. "]ª æqí„PhjÓÑ­¶üÂÝ‘)·Á[Êõp¹W]ý•­žÛiâ R©\Ï % n–éõ¿Vé}­Òƒ'ÿµJïk•Þï JOE°óo»ò$l/¤Cbæí…kïùµ9j–™¾]sH• ª/œ©;»7}Ï|D®¶Æ¡ÏBIâÙ;YS“sÂè=îWËäå® sý79ç–b0×s¿FøŽjÈÆÇ›Pz{Á·±i¿&øóš¼mÎ"³FMŦ^íkšê».ì»Aöô ·@¯êˆMJÄÌAy ` Û˜C—³ŠA]}¨vX"˜ˆÕõEUwˆ2«ƒÆ©U5Èg,b¹‡áÛ%| ³¾Çê¤1¨@¬¢vDäæÇÁAÓ×'\nÓW·t5¤ª9,%UeÃÓy¤pue*T]t`5Ã=~ºù†ªLÕhåù“{bÂakmTŠj6ÕVkJuß*ƒj¸qgðgìÂ#Í0˜}h%ÞïAiñžSa’‚b—Šuè:=Ó„âF¨  ¨þTUŠjð@ÊňKû€Ò¹÷ë$<1è "{Ã@NQSŸSi5Š¡“o§ÇoYA)Î ±J «¹`wiºðqKqž"ç,À”Zì¹”ã6¶÷Ú笵º~R’¸¢³¶c¤2®ûÕƒûêÁ}õà¾Þ³ø}ܳ ý ¢ÿ¶«„w6²„ØZ2ÏŒ¾g¾Õ}B/.9|ëM1.årNûU]2…‡ n¦r#l|és\AÒ ¸½ãG*¯ùY¶kagüjÔ³m“v5vB^À!¬¹M°8ônm”´,~øAçÃiÖ@»â1³Bð–Á$Î\ªw²”Cd‡²2‰ a(›>nmðUiÏÔ&1e˜,q¨t»ŠŽÃÌp×€nPg[/4MgÑÐcÜ\‡Ìˆo( €¶iºn²iàŒ3-?Ø Zžôj¨–zCT‹ª&Ì^cê"x}›³(¯H•!Wx1§œuf•²rƒFÌ…:ÔP q¤‰-]=y(æ<4„Þ³§_¼EY{¬>´ÐKÍŠ*§ÿúÚ8‘[ÌÀP<¦8…ÉŒgª*Șã#ó&ëí{4‘õ±â¾OéBø¾\ÇÊdªdoØnÈ,†~0¨VOí6,<{6' ’”oŸ¡×Ò§zÍÓ2À%{PY"˜½O Ñê¶7,L®¤É«¬q æÝÉcîV6F±›=Z•œ3ÊP†øˆ* @6Ro!fqüÅCoeµ:O——O¹þ²­‡Ö?Dq½øV¶Ã¶ìT­P 6/áì¾³•­=¿Ë7Ùżi…;/>½ z‰R ÍjŽ©ÅL\?” s{wƒº£›nWdÛÇå¦n{êöZü–›~·»û…$91mÒó º²˜ õ˜ûÏ·UÖ¹À;ÃóÊŸµ †ñp«•ø(cFž,p˜}cóe £¿Ož DËnÚkËÀocaNÝiSV5ß´¹`œ½rÒ`,“–ÒsŽ€”ð¬»3¬$–ÍÖæ ¶[R‘]Q’jr$ï´‘ DgHÿí‘¡µtåÀë·›]¼0¹ßiz›ïª&CSò::W^íÑ÷ º„‚/kn-!}ÙÃ$¹P$ÓK¨ƒÛ퉃Íu;xXÑêgÈQÐõî*WÔ˜Ç ¼B±‚Xwt5[kÐn¶úxTgÚêu‡Õ®–*ïB¾Ç+Û3-u‘ÂU¯ÕvëCöÕˆ;ì09á{—ÏŒ%ð…™G–hi¸ôŠˆŒ6ͪ¦˜&Sˆ< ©ý`Poã3è×Û¹ó a~S”l$V†Œ4*'sƒ(øÎe(ûDÒQLÔpÊ^ç1á8 …tÂêrdqÓ0CÔ¸ŠšÏûtÒø†Ä›4Gæt\vâ¡¢sžÕ+o^Wßê”®JÔÚ8Û êt^Ù%è~Ž™¶‚åúpÕa.Üþ'>ýÎä,A‡"žGq)ak½(ÅÔ¸7Á˜Àk@b:[µo= 3rLרÁƒUuVSÀ84H…À¤Ð›ÞCmåci„ºøEÊw"ñóöGúI㉿©¡Ö±K¡0ª >Õ\…Ëøž]ĪFÊî MS—sð‚j¤Q;~ëV¬ ÎlKeUƒ”ë´uÚµEóŠÙa¨À2-,î¦C{³}ÈœÍ<ÞüÕÀi7Ð|µ»}åÔ% ­ç;¦ž, —– R£ºÇÁûÁLÞzþc#X"¶WUö}´ø{ýn€kœ8´Â BpU»ÙÉ,ìv«ãIÜÒõ‡ýÖ`óqìô+YÇ h«Š¶Ðñ‹/pK8;¸^ÖeÀ»–5ûdF*†ôMê$»Eu˧˥÷XkÑ;Tž(ñ‡¥·P"¯*î\-kW¢ÆÅ" îÚ?ÕˆçqVt¾×—]ÁeR+Úðß.bp¥¿£+ÖãY٠Ҁш<Ñß ü§ˆ°Zàæ”^³…¼ã´Õï‡ÕÞTm(Ht„í)¢&x-dŠî~}i±Ñ¿Bä÷)ŠD†x‚Û¬dZèµ´ôâydzÌ£ª:…¤ªíÔñbJm€jê®ßv)“=è" \5“½‰lBm‚— µ™îwíöC9?0±7}#°¥ÞÌiwÿM×ɶÅ÷¸}Õ̃ýÇX¶¿ÃmØpÆ,øÃ gðða|¿Ú»Ì70í‘`nT½³ç“=dJ?—ënýµ²2A.0ŽþËp™·Ÿý)–²õ™è·Œ`Ü?Çj×ÊR:@Ÿµ²ß°+Éó«9Gû«øþ ZI‚^ÑdäyÚ½î´]ñ/R¸Md{ôdü‹¯tåÑÛBWO2IŒÐ *RZù¸À»¶­S¢zBô¶¿máW[Ùš'xõñ¾hqÒ¬îa8èwè,8´»^ÕÝ®jrÓ4š ß¾mýy tQ*O›¦…^_¹‘#¦³î‡ôRóXI®špÌ.¾g÷´À´XúÍR|XOnsè·½ªF×F´G&6(¯£&ç×éós¿a³'¦©Üº½ÌÞihÉ ÎË þs¦£2è6ŒYuÙß’Ò@9Dz§­^¡;·¥ Ÿ²BÛê/Ç4ðþ9'XvêB´V‰é°5 $2vnØwýVµ¨J)¾šQÚ£ÄвqÛ~ù‹WÉÞ][éħ-WÄ:É)dv$…Þ¬K:4€yBfø)krruby-git-1.6.0/tests/files/working/dot_git/objects/f8/0000755000175000017500000000000013615571573023032 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/f8/e9c6748331411c0d3511f90bd4e0a1a30acff00000644000175000017500000000016713615571573030134 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýbNqr~I Ã\«Kæl_xåËIÁ¦“ùÚOÍù#é2ƒruby-git-1.6.0/tests/files/working/dot_git/objects/79/0000755000175000017500000000000013615571573022754 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/79/e5b9e6ee5a1e6c52676a6332fe9163adaa92cb0000644000175000017500000000002413615571573030327 0ustar terceiroterceiroxKÊÉOR07`0ä¢ÃÔ 8ruby-git-1.6.0/tests/files/working/dot_git/objects/b5/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/b5/d8fc3cb740eb643c66eb5f4a97345fdb8062590000644000175000017500000000012713615571573030255 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aøÄtº4ÐôŠšig‚zóÿÍZìs;å Eruby-git-1.6.0/tests/files/working/dot_git/objects/85/0000755000175000017500000000000013615571573022751 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/85/8f46dd7496faf7af72102ca15cccff832b53770000644000175000017500000000013013615571573030252 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØl¦3ÁáËQµ„ÍŸç=Ð9w. ïh"oruby-git-1.6.0/tests/files/working/dot_git/objects/0f/0000755000175000017500000000000013615571573023022 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/0f/845a0a981bc2f61354fcdd2b6eafe2b2c55c2d0000644000175000017500000000025013615571573030436 0ustar terceiroterceirox­ŽA E]s .`…ÂcâIÆaj»hi`šx|‰gp÷ß_¼<*Û¶ŠC¸HeÖ92xÏLnÌÑ£Ë.’'6¬ƒ0[ã¦Ô•wÑÐÒ Ç”‚ Ì4#²CB;ù“Ë OYJÕŠˆ~.He×·F¿ñÀ7æR[wÊJg¨Ôc¨Œ$uýtÚîÚÚä»+¸¤¯ŒQýíåÂÿtª²îê ¸X-ruby-git-1.6.0/tests/files/working/dot_git/objects/0f/f4a0357c3d7221a2ef1e4c6b7d5c46d97fe2500000644000175000017500000000013013615571573030224 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðÒ~0ÅoRë‹Jb'7ìX~ùìeQõÈ"åruby-git-1.6.0/tests/files/working/dot_git/objects/6b/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/6b/790ddc5eab30f18cabdd0513e8f8dac0d2d3ed0000644000175000017500000000006313615571573030657 0ustar terceiroterceirox+)JMU06a040031QH­Ð+©(ax6÷ÑìM¯9{wk®+ºqèIOðD@ºúruby-git-1.6.0/tests/files/working/dot_git/objects/8a/0000755000175000017500000000000013615571573023025 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/8a/3fb747983bf2a7f4ef136af4bfcf7993a193070000644000175000017500000000002513615571573030263 0ustar terceiroterceiroxKÊÉOR042c0äHÕjÞruby-git-1.6.0/tests/files/working/dot_git/objects/02/0000755000175000017500000000000013615571573022736 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/02/b2a02844d00574c234d17bec6294e832f3c4c10000644000175000017500000000013013615571573027702 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(apc-eÛ§ðZ”qÉǨ g-Wv¾KÙ‡!=ruby-git-1.6.0/tests/files/working/dot_git/objects/b1/0000755000175000017500000000000013615571573023017 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/b1/b18f5bea24648a1b08e5bba88728c15ec3cb500000644000175000017500000000025313615571573030301 0ustar terceiroterceirox­ŽAnÄ E»æ\ #ˆiTUêIãt²HÔãõ ÝýÿOOúqìæÑ› UÏ+Ò*X0lB \€KÂÀ!ÅжB«{òÐÓ|ÆRÓšãd¨ ¼4ÝÒ¶D¨‘Rƒ¬šÚ¿ìч¿¤›ù¯K?ýý’¿ñÉßÜú¸¦Óvy]7éãyÊbcÿ™ïøðˆ5-©RÌþ €›t–›þ§ÓÍýt¿ÎWruby-git-1.6.0/tests/files/working/dot_git/objects/b1/5336206c9040f4c52660b3f3c76ee02ccece560000644000175000017500000000002413615571573030056 0ustar terceiroterceiroxKÊÉOR0µ`0ä"QÀÜruby-git-1.6.0/tests/files/working/dot_git/objects/b1/288f8beeaa6cf048c3a9f578d4e266fab8820e0000644000175000017500000000013013615571573030411 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¨|ºóÙ»(¹œ ô¬d£“×®štþÖ"îruby-git-1.6.0/tests/files/working/dot_git/objects/a8/0000755000175000017500000000000013615571573023025 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a8/98e8a6b143188022863bc1cab0b5f7514624ba0000644000175000017500000000013013615571573027777 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aÈ}ñÛôГe³î^0øt{Ëwû+%ÚÑ¥$Žruby-git-1.6.0/tests/files/working/dot_git/objects/a8/b607b221454c4cd7bc7831b2d19712bb4ff8880000644000175000017500000000002513615571573030074 0ustar terceiroterceiroxKÊÉOR044`0ä¢'Ñ¢ÿruby-git-1.6.0/tests/files/working/dot_git/objects/29/0000755000175000017500000000000013615571573022747 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/29/1b6be488d6abc586d3ee03ca61238766625a750000644000175000017500000000025113615571573030027 0ustar terceiroterceirox­ŽA E]s .`3 1ÆÄ“Ðé ]´4tšx|‰gp÷ß_¼<ªëºˆ/Ò˜5“a;;ÇMœ§2åaò„D–1DV{n¼‰Žè+DÕß^.üO§ê!˦¾¯øW~ruby-git-1.6.0/tests/files/working/dot_git/objects/bb/0000755000175000017500000000000013615571573023100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/bb/0850568bb43049031a38b01ddb60e4a487f8230000644000175000017500000000002313615571573027710 0ustar terceiroterceiroxKÊÉOR0´`0äB‡GY<ruby-git-1.6.0/tests/files/working/dot_git/objects/71/0000755000175000017500000000000013615571573022744 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/71/c9a23879ff0ac8c49b92d107f3f89c6d1b2d920000644000175000017500000000002313615571573030175 0ustar terceiroterceiroxKÊÉOR02c0äÂm’'ruby-git-1.6.0/tests/files/working/dot_git/objects/71/894b736711ea0a5def4f536009364d07ee4db30000644000175000017500000000025013615571573030016 0ustar terceiroterceirox­ŽQ Â0DýÎ)r%i¶k"‚'Ùl¶Ú6’®àñ]<ƒ_3ó†á¶®‹úñ ]ÄsQdÆ™"ÕSLgÆ2Å:*æÐ½¨Ë¦Þ0ÔQrÁZà 5Ì¢dÊlå:A” ŽÞúlÝïÜTýýIÜ6Ùùgnô Úún›ºð{?që¯SbíËÇÒzõ1f!cB SΨ=Wù禳#Ëæ¾9ÇX=ruby-git-1.6.0/tests/files/working/dot_git/objects/b6/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/b6/987bc1201ad19774c43c0ea8078f6f51d76bcb0000644000175000017500000000002413615571573030156 0ustar terceiroterceiroxKÊÉOR03c0ä¢œÑ Çruby-git-1.6.0/tests/files/working/dot_git/objects/b6/153b8fe540288d66b974ae05113338ab1a61f00000644000175000017500000000024713615571573027730 0ustar terceiroterceirox­ŽAÂ0 9çù¨il‡H!ñã¸ÐC›*5Ï'â Üvç0©Ë2›‰ÖT}ÀLH˜´L (ÌŒ¢±“±£‚¤¹›®æ=Ê$Y ИX2”cdJL—‘STÇo{Õæw©fþþb©«¿ìò7~r©mïN›å½Ÿ¤¶íÔ”ÅÚüéo¹ú2 dðÇá< ®Ó^núO§ë!óê¾§UXÖruby-git-1.6.0/tests/files/working/dot_git/objects/b6/9e6acd87e5f9114ce6580b095ef1057a8fe5bb0000644000175000017500000000002413615571573030334 0ustar terceiroterceiroxKÊÉOR07b0ä¢ÙD uruby-git-1.6.0/tests/files/working/dot_git/objects/54/0000755000175000017500000000000013615571573022745 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/54/6bec6f8872efa41d5d97a369f669165ecda0de0000644000175000017500000000025013615571573030347 0ustar terceiroterceirox­ŽQ Â0DýÎ)re›t›,ˆžd»Ýj?j$YÁã<ƒóæ1Rö}3&Í£FêãÀ9DÔABÂ$+Í)GÁeLó”ÖäømR}“bæo–òôç&¿på;/¥¶î´MÞí$¥¾NUY¬nŸNûÅ8aòGÈ®·ý¹é?δ™û…pVuruby-git-1.6.0/tests/files/working/dot_git/objects/54/5ffc79786f268524c35e1e05b1770c7c74faf10000644000175000017500000000022513615571573030042 0ustar terceiroterceirox­Q à Dûí)¼@Óh ”BO²Ù¬i VY äø•ž¡3ïcxC)ƽ꾟/U˜5,«& p3»É²Ébè5Î,L TxÔW](ÕªŸ/¤ôÑ·B¿ðÀ ×$%£ÔŽÒQ’Ü #UÙÏÖâ]3ƒ·0:} m&•ÿ¹©øÄ˜ß¬·öQ8'õÌÒN£ruby-git-1.6.0/tests/files/working/dot_git/objects/54/7a4bae347658f0d9eed0d35d31b4561aea7cf80000644000175000017500000000025113615571573030320 0ustar terceiroterceirox­Ž] Â0„}Î)rK²ÙüˆàI6ÛTûÐFÒ<¾Á3ø63ðÍ ·m[EC'éµjÈ@BœñÎ6–Ê2Öä`qŒlÕ‹zÝEûo(ÛZÀ¥á`ƒ‹½]BŠÙÛ¢è-ÏÖõÁMDߟÄm×—ƒâFš[?F§¬ü>&ný5õJ,}ý ·]µµ=æ€QŸÍ˜Q#Ï¥þ³S#뮾~âVKruby-git-1.6.0/tests/files/working/dot_git/objects/54/5c81a2e8d1112d5f7356f840a22e8f6abcef8f0000644000175000017500000000025113615571573030242 0ustar terceiroterceirox­Ž] à „ûì)¼@ƒ¿¥z’uÝ´>$5ÐãWz†¾Í |CeÛr—àÒ+³tŒ¸F‚³ÈäÖ°jÐ&)›Øª@F;˸ˆ+ï\t„È.„ÉH–YYÂÙ0€ñ8{g—*•ÞåóTvykô |a*µ gÏt¶‰J=¦ÊH½æÏhÛ]j½8ï𳼪 ”ëxÞùŸN1Žä]|EÞX;ruby-git-1.6.0/tests/files/working/dot_git/objects/54/0200385c3b0b299c7a87ecf59ca94c32fbbe990000644000175000017500000000002413615571573030163 0ustar terceiroterceiroxKÊÉOR07a0ä¢ï2 ²ruby-git-1.6.0/tests/files/working/dot_git/objects/52/0000755000175000017500000000000013615571573022743 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/52/4038b20b297f40d78e7d83e04e38049457312b0000644000175000017500000000013013615571573027514 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aøÝWÑÂ[ɵ?àíë¯;¯m·{ðÛýÍ#µruby-git-1.6.0/tests/files/working/dot_git/objects/4d/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/4d/ff9ef38ef09cbf0e36031bbee22b7cf0c7a8fc0000644000175000017500000000002313615571573030675 0ustar terceiroterceiroxKÊÉOR02a0äÂcêruby-git-1.6.0/tests/files/working/dot_git/objects/4d/35ba97a858072c240d327e3ce30c28b333a1b00000644000175000017500000000025113615571573027766 0ustar terceiroterceirox­ŽKÂ0 Yç¹UÜ:? !$Nâ:.tÑ¥FâøDœÝ›· ×m[ÕŽ!œ´‰Xd(œ$……grR|„D1º¸¤eDŽæEMvµ~¢8–Å{Ÿ¼ŒSžaaÌ©xÉó  ½õY›=¸ªÚû“¸îörðoÜèA¥¶£;uå÷1pm¯¡ ±¶õÓi»Z€Œs@°g—œ3ýíå*ÿtš²îæ ´GXÕruby-git-1.6.0/tests/files/working/dot_git/objects/0d/0000755000175000017500000000000013615571573023020 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/0d/519ca9c2eddc44431efe135d0fc8df00e0b9750000644000175000017500000000025213615571573030366 0ustar terceiroterceirox­Ž[jÃ0Eû­Uh1ifdC(¬d¬Gã[AC—Ñ5ôï>àpRÛ÷M­gþÒ^ŠÅè*Ë«äì©r^]ÅèIJˆqŒ¸bó–^µ3TB ½óÈ<^bâ"ÈAh]0 U#—¾Z·gjªöù’Ô{?Ó_xÈäÖÏÁÔ-]ç”ZO½HÒ¾ý޶[€ F¶77;gÆ:̵ü'Ó ‘í0§cV_ruby-git-1.6.0/tests/files/working/dot_git/objects/0d/2c47f07277b3ea30b0884f8e3acd68440507c80000644000175000017500000000025313615571573030016 0ustar terceiroterceirox­ŽAn! E»æ\ ž1†HQ©'1Æ4³˜!b©Çêºûï/žžô}ßÌ/D6T=6 a))7%bMº†[”ȈTjÈÅ=yèaž–$5ÌÂJ­ ”„±VÒšÆj^኎_öèßÒÍü÷ƒ¥þvÊ߸ó×>Îé´M^çEúx^†²ØØ~'í_¦$â•VôŸ!‡àæ;ËMÿÓéfÈv¸7ç­Xruby-git-1.6.0/tests/files/working/dot_git/objects/58/0000755000175000017500000000000013615571573022751 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/58/73a650a91eb238005444d2c637b451f687951b0000644000175000017500000000025113615571573027520 0ustar terceiroterceirox­Ž] Â0„}Î)rË6?›DO²Ùlµm$]Áã<ƒo3ÃðñqݶU­Cö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a˜i{sãÙW[í "ÚNÊîÙÓ©ùþ“‘"øruby-git-1.6.0/tests/files/working/dot_git/objects/93/5badc874edd62a8629aaf103418092c73f0a560000644000175000017500000000026313615571573030077 0ustar terceiroterceirox­ŽAjÄ0 E»ö)t¶$;6 ¥Ð“¨²Òšq°=Ðã7ô Ýý÷¯í8ö ¸,/³›/˜¢¯Œ«Žlh)U)kÔóg–5U,ÙÒí1XbJ5ªÊ‹ÇÕSàRR©™BLÞÉsn­ÃÐ6'|l¢í÷¡ã]¾¤¶>®æÜõ9nÚúyë&:ûþsÑñ!ND”^}öÞ]öz>í?›îhÝ`˜tÝ`³ïÓýÊGZÂruby-git-1.6.0/tests/files/working/dot_git/objects/0c/0000755000175000017500000000000013615571573023017 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/0c/ac9b660896797e9cc9abb36c081a7ec0d1a7b10000644000175000017500000000023113615571573030315 0ustar terceiroterceirox+)JMU041f01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aè=>ëybÖ~9]ߨéWÓ>múvî3TYZN~b‰^AbIrCŸ±{~«þÿ yJ›\ü,˜Ñšþb]qr~I ƒ«Â¡Ùqswn¸oS½º¢@´N–á0±¡@ruby-git-1.6.0/tests/files/working/dot_git/objects/57/0000755000175000017500000000000013615571573022750 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/57/7ddd894033c46a5fcf2c6f3c4e71cc72f869090000644000175000017500000000007313615571573030207 0ustar terceiroterceiroxKÊÉOR0±`ÈHÍÉÉç*ÉÈ,VÈ,æJTHËÌIrK@܂҅ŒÔ" @¾BqjbQr ”ruby-git-1.6.0/tests/files/working/dot_git/objects/ac/0000755000175000017500000000000013615571573023100 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/ac/8f48bbb7b31c945ba6a4fbe6950d009a5d83730000644000175000017500000000002413615571573030313 0ustar terceiroterceiroxKÊÉOR03`0ä"b3 ruby-git-1.6.0/tests/files/working/dot_git/objects/56/0000755000175000017500000000000013615571573022747 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/56/195ef83e9e20ca75dddef0630633fc8060ed110000644000175000017500000000002513615571573030156 0ustar terceiroterceiroxKÊÉOR04´`0äQÝóruby-git-1.6.0/tests/files/working/dot_git/objects/ed/0000755000175000017500000000000013615571573023105 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/ed/551aa66cf0c6f1a078832f80899faff0ae88dc0000644000175000017500000000013013615571573030410 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a8ËiZm¶Äý¿úòƒe[ò¸ g;Ýäò âruby-git-1.6.0/tests/files/working/dot_git/objects/06/0000755000175000017500000000000013615571573022742 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/06/f4e8a840d23fc0ab94895a5d16827a19f75fb70000644000175000017500000000002413615571573030112 0ustar terceiroterceiroxKÊÉOR05`0ä" ,èruby-git-1.6.0/tests/files/working/dot_git/objects/e7/0000755000175000017500000000000013615571573023030 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/e7/ea5938f9c009d32235050bca991d0b9533e4400000644000175000017500000000013013615571573027726 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØå©“´M©¶Þ”}ËcÏ®~4Ÿðj?í†"Ôruby-git-1.6.0/tests/files/working/dot_git/objects/ec/0000755000175000017500000000000013615571573023104 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/ec/1e3d44e160e18dbfbaa80b5b0780ccc03e678e0000644000175000017500000000013013615571573030432 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aùó{ß–'‰/\ÒjP^-{ï„#eruby-git-1.6.0/tests/files/working/dot_git/objects/ec/16a327a6a98367d03369b4e998baf3db3793130000644000175000017500000000013013615571573030027 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØÍÖ½ÅÀ“YÊbƒìí„'KÚ(Ú iruby-git-1.6.0/tests/files/working/dot_git/objects/16/0000755000175000017500000000000013615571573022743 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/16/9e6db43d4c09cd610179a7b9826483b4d941230000644000175000017500000000013013615571573027662 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a`ä®®dœ³UàÆÑ–é,BÄB'æÖú©ruby-git-1.6.0/tests/files/working/dot_git/objects/16/d1f96acfd92d09c4f1f56d3441ac55dd30500e0000644000175000017500000000002413615571573030223 0ustar terceiroterceiroxKÊÉOR0¶`0ä"µQŒruby-git-1.6.0/tests/files/working/dot_git/objects/16/ee5335538f11b4ffcc17b051f8d5db7570a0550000644000175000017500000000002413615571573030066 0ustar terceiroterceiroxKÊÉOR03a0ä¢ ˆÉ Šruby-git-1.6.0/tests/files/working/dot_git/objects/39/0000755000175000017500000000000013615571573022750 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/39/66e9fa0e0b9fe9d3ef2fdaa6933f3d0bb82bc30000644000175000017500000000002413615571573030543 0ustar terceiroterceiroxKÊÉOR°4b0ä¢Ä+ Åruby-git-1.6.0/tests/files/working/dot_git/objects/70/0000755000175000017500000000000013615571573022743 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/70/714b02913c1a249a5ab05021742f0bc7065df70000644000175000017500000000025113615571573027620 0ustar terceiroterceirox­ŽKÂ0 DYç¹U¾®+!„ÄI7….ÚT‰+q|"ÎÀnfo—m[E;€‹Ôœ5á„ ’ Þ"ç|bË”LŠËm©ƒjÞEƒ·!@æhÐ öäí²,#ˆ¦™Ãè“¢SÞ¥êÆED?ßÄe×·Æ¿ð Í¥¶Î”•Ï6p©ÇP3±ÔõÓÛv×ÖN!† bÐ×þeT_»¹ä2UYwõ-ÎW%ruby-git-1.6.0/tests/files/working/dot_git/objects/00/0000755000175000017500000000000013615571573022734 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/00/62cdf4c1e63069eececf54325535e91fd57c420000644000175000017500000000013013615571573030153 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aØ6/ëlûÓŸ‚>Ï"¸9ã>²Võ?Ý ûÊ"]ruby-git-1.6.0/tests/files/working/dot_git/objects/00/ea60e1331b184386392037a7267dfb4a7c7d860000644000175000017500000000025313615571573027652 0ustar terceiroterceirox­Ž]j1 „ûìSø þ“£…P=‰V–š}Øuð*ÐãÇô }›˜û¾oæS­6D|fͰ¶XXASk×UD±.Ø®!h¦Q€Ý“†æ¡c¤$ØbŒ©^3TÅ(ÍQ+­<ïêèe>üÉÝÌ?ˆûáo'ÿ…;ýPëãœLÛøu^¸çe±íw¶ýËǸ(KôŸCpsæ&ÿÉtSd;ÜÕY ruby-git-1.6.0/tests/files/working/dot_git/objects/44/0000755000175000017500000000000013615571573022744 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/44/987dd95c338fb573726541f270f1a7b55c9d510000644000175000017500000000002513615571573027702 0ustar terceiroterceiroxKÊÉOR040b0ä¢\ýruby-git-1.6.0/tests/files/working/dot_git/objects/44/88516c3c936db58ea485ec2213dab9d13e66280000644000175000017500000000002413615571573030026 0ustar terceiroterceiroxKÊÉOR°°`0ä¢ “b Truby-git-1.6.0/tests/files/working/dot_git/objects/2a/0000755000175000017500000000000013615571573023017 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/2a/f6f7d51b7afdd404a871581ebb3b6ac07fb8cc0000644000175000017500000000013013615571573030522 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aðܤ9ÝôïâÅÆÇæ$‹wóØþâê žruby-git-1.6.0/tests/files/working/dot_git/objects/d5/0000755000175000017500000000000013615571573023025 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/d5/b9587b65731e25216743b0caca72051a7602110000644000175000017500000000025213615571573027553 0ustar terceiroterceirox­ŽA Â0E]ç¹€ÒIÒ$"‚'™N¦ÚE›’Žàñ žÁÝñx\×uQëb¼>n·Í fü°C2¶¦ž[ ‰T©Fæˆ96ÌË¢Z±¬MÜ?²Ô´4âŽ% ó ×X‰4ø”ú{IêiYÝí:˜}˜Áï•úØágöW\èxóiÚÖïóû´]>ÏBÍ%ú’|yôÞõ×®ÉÛãML¦¹à°P°ruby-git-1.6.0/tests/files/working/dot_git/objects/5e/392652a881999392c2757cf9b783c5d47b67f70000644000175000017500000000025213615571573027656 0ustar terceiroterceirox­Ž] Â0„}Î)r%›ß ˆžd»IµmJº‚Ç7xßf†™á¶®‹hãIz­ºâTŒ› ºí<‘Ñ0º\|v(a©ŒAíÔë&:Í!Ú0ÇÉq²à,&˘ ¤Ñ¶kACEoyµ®n"úñ"n›¾üwzRiýLYø}\¸õýÒ+±ôå3ÜzÓÙŸcÈúlÐ5Òñ\ê?™jY6õíJV®ruby-git-1.6.0/tests/files/working/dot_git/objects/32/0000755000175000017500000000000013615571573022741 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/32/4968b9dc40253f2c52a8e3856398c761dea8560000644000175000017500000000025313615571573027706 0ustar terceiroterceirox­ŽKnÃ0 »Ö)t2õ5r’¢/l2 ôøz†îÞ›Å`¸íû¦RúÒ.b#B‘µÂÊkŒ”)¡ÌœÅJŧyP"óÆ.‡ÚP}$\2–X\†àª‡,žÅ;†BÞ{œÉ¼ôÕº=¹©Úç ¹ö~òßxàÖÖÏáÔ¯sâÖßSdíÛïxû·ç%ݤöæŠsfÐQ®òŸN3B¶Ã|‰OXƒruby-git-1.6.0/tests/files/working/dot_git/objects/47/0000755000175000017500000000000013615571573022747 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/47/0f6a87fa51dd25f6db0f4725ae37791d4493560000644000175000017500000000013013615571573030031 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aXÓï±{ûf™)ÑË–ü~6•—aVls1ü$".ruby-git-1.6.0/tests/files/working/dot_git/objects/47/8e5ee111572790b248eaa99140c5a8f728abc70000644000175000017500000000025313615571573030031 0ustar terceiroterceirox­ŽKnÃ0 »Ö)tÔ‡´E€ž„¢˜Æ [Ì=~„ž¡»7o1éû¾™D6T}&&ˆ)†°`\t©¸°@k¨œù¥¥{«TÈ=yèa~­­dPEÖš¢B D³Ä!¥UJsü²Gþ”næ¿,ýð×SþƸõqN§mò:/ÒÇó2”ÅÆö;iÿò!”Œ¹¢ÿ„ÀÍw–›þ§ÓÍípoßbWíruby-git-1.6.0/tests/files/working/dot_git/objects/47/2650d42fa9454e2e61e3da9f5c158b8af6d2980000644000175000017500000000016613615571573030123 0ustar terceiroterceirox+)JMU040a01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýbNqr~I ƒ«Â¡Ùqswn¸oS½º¢@´N–á0.ßruby-git-1.6.0/tests/files/working/dot_git/objects/cb/0000755000175000017500000000000013615571573023101 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/cb/45eef6fa1ad913137d91c6b81d2b42d69094a60000644000175000017500000000013013615571573030230 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aXùèciÒºŠå±'BwÛž|Qœ"{é# ruby-git-1.6.0/tests/files/working/dot_git/objects/d3/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/d3/d171221e87a30e059d638f155f899595d96b710000644000175000017500000000002313615571573027623 0ustar terceiroterceiroxKÊÉOR02`0ä„O¤pruby-git-1.6.0/tests/files/working/dot_git/objects/95/0000755000175000017500000000000013615571573022752 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/95/ef665df6ebd69842c5e74a24cb8a12225dee3e0000644000175000017500000000013013615571573030331 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aø¹çÅÌ@Îó«ÝcY¬joŠæÆ…û]÷Ù![ruby-git-1.6.0/tests/files/working/dot_git/objects/81/0000755000175000017500000000000013615571573022745 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/81/f545324202466d44115656ea463a5bb114345f0000644000175000017500000000025213615571573027420 0ustar terceiroterceirox­Ž] Â0„}Î)rKó×& "x’ínVûЦ$[ðøÏ ÌÃÌ0 –m[EÛiºHÍYÇÙOD³OÏ]ÖŒÁDdŽÎ.Áͳ: æ]4|_.#Qæ‰)™Å¥˜ˆ""d›‰‚SÞ¥ê†ED?߀e×·†?ó€P©­ÊŠg°Ôc¨Pêúéi»kc’Ê}ã8ªÞvrÉÿüTdÝÕCGYµruby-git-1.6.0/tests/files/working/dot_git/objects/81/d4d5e9b6db474d0f432aa31d44bf690d841e940000644000175000017500000000025113615571573030160 0ustar terceiroterceirox­ŽKÂ0 DYç¹UÒü\ !$Nâ:tѦJ]‰ãqvófñf¨®ë"zŒñ"Yç)$d,9;ÛÁ1ì\KG˜'ËjÇÆ›hôO>ØKqvfp¥:NaŽècPxÊ»6}PÑÏ7RÝôí _xà smGwÊBç1PmûÐIÚòé´Þµµ}ÄOÑE}5`Œêm.üO§êG–M}€ñX½ruby-git-1.6.0/tests/files/working/dot_git/objects/81/25fbe8605d2884e732a185c9a24abcc0d12a1f0000644000175000017500000000025113615571573030141 0ustar terceiroterceirox­ŽA Â0E]ç¹€’´3“DO’N¦ÚE›’Žàñ žÁÝñx\×uQ;´‰Ø"a(¢§™ H:㔇iÑÌž›ljgD狤8„Ä3zçcŒa„@ó(¹8!“ßúªÍ\Uí㕹nözðoÜó3—ÚŽîÔ…ßÇ…kÛ/M2k[>Ö›õ>u{"{vÑ9Óß^®òO§é!Ëf¾y¥Wiruby-git-1.6.0/tests/files/working/dot_git/objects/34/0000755000175000017500000000000013615571573022743 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/34/a566d193dc4702f03149969a2aad14432315600000644000175000017500000000027013615571573027500 0ustar terceiroterceirox­ÎMn…0 à®9…/ЧüB¤ªªÔ“Ç., (1ê;þC=Cw3³ø4\÷}33¾Y¯SöËœrQ?²N Ãè‚*yŽqAB'‰D‡“šË’<ÆŒXXɹIE%é‚™ñf"/!S‘.[kƒÎÕ ¾WâzÀGç¿ðE?Tjë·i_ýÁµ&ÄÖ¶çÝöOð>ãCN#¼»Ù¹á^ïç&ÿi{-›nRÀ*Õ ¯õ®sxÒ_€ruby-git-1.6.0/tests/files/working/dot_git/objects/3c/0000755000175000017500000000000013615571573023022 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/3c/644f22b9b8edb06e7e298ecac8e71b133061f10000644000175000017500000000002413615571573030232 0ustar terceiroterceiroxKÊÉOR05c0ä"?žŸruby-git-1.6.0/tests/files/working/dot_git/objects/3c/f35bd14cf5f2dd08bbeef8698d700f3a038e5c0000644000175000017500000000013013615571573030455 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a“Œûa7OáTéÝ{’ÙŒÿ4$¼ïÆ!âruby-git-1.6.0/tests/files/working/dot_git/objects/3c/c71b13d906e445da52785ddeff40dad1163d490000644000175000017500000000011213615571573030226 0ustar terceiroterceiroxMËA €@@ÑÖžÂg&,Ña4º~¶kù>ü®Þqß&U‡d ”€†§([~w"Ó¬àÔæÁèöW>æu۵ ‹Fruby-git-1.6.0/tests/files/working/dot_git/objects/a7/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a7/88a1cba299638a2c898fcfaae1f69a1549853d0000644000175000017500000000025213615571573030265 0ustar terceiroterceirox­ŽAÂ0 9çù(‰k'‘Bâ%®›BmªÔH<Ÿˆ7pÛÝÃìH]×Em :i+Åfp$id(sž„i& ä’’Dï3!›[ÙÔN8fLq$ŒàKÀà)0:aázŽä‚÷†ßúªÍRUíãÅR7{=äîüä©¶£3u‘÷q‘ÚöK+,Ú–OoëÍöã‡LìÙ%çL_»¹–2MY6óîHV³ruby-git-1.6.0/tests/files/working/dot_git/objects/8c/0000755000175000017500000000000013615571573023027 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/8c/e3ee48a7e7ec697a99ee33700ec624548ad9e80000644000175000017500000000025013615571573030300 0ustar terceiroterceirox­ŽM Â0F]ç¹€%& "x’Étª]´)É<¾Á3¸û¾·x<*Û¶Šv©ÌzôˆÙ³™,@Œ90xÀd9€ >8kâÕ•wÑiÁà3ÍaÄÅE¶&1,SND³î(y¯ð”w©ºQÑÏ7RÙõ­Ño<ð…s©­;e¥³ Tê1TF’º~úÛîÚÚÆ`´új¢1ªÓ^.üO§ê!뮾ÿØXruby-git-1.6.0/tests/files/working/dot_git/objects/4a/0000755000175000017500000000000013615571573023021 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/4a/4e676afe275afecf23130390fe96d0e6d000570000644000175000017500000000002413615571573030150 0ustar terceiroterceiroxKÊÉOR01a0ä"Þ¶:ruby-git-1.6.0/tests/files/working/dot_git/objects/4a/2bee50944e9285e8f82216c9b0b8a7d3cdd3150000644000175000017500000000002413615571573030161 0ustar terceiroterceiroxKÊÉOR°4c0ä¢-ú ?ruby-git-1.6.0/tests/files/working/dot_git/objects/4a/de99433ac3e4bcc874cd7de488de29399e90960000644000175000017500000000025413615571573030305 0ustar terceiroterceirox­ŽQjÄ0 DûíSø]ìIJ-X–BO")J7‰ƒ£…=~MÏP˜™axŒ´}ßÌO9XWõ –•‡hJ…€ŒE1Ìi’51f àNêz˜çȱ®À:æ9UŠª3ÕZ¦*TfaŽ^ölÝ_ÒÌü÷“¤þ~ÉŸù¢ZZ¿Ó6y]7iý¼u%±¾½GÚ>FL0Ïņ‚íxnúŸL7Žl‡û2äXIruby-git-1.6.0/tests/files/working/dot_git/objects/4a/1e3e4500962c3631a479726bf2e40469594cba0000644000175000017500000000002513615571573027652 0ustar terceiroterceiroxKÊÉOR040c0䢘KŽruby-git-1.6.0/tests/files/working/dot_git/objects/2f/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/2f/53e667d1d88e75b3fa300f9ab6e2d8ffd32a150000644000175000017500000000002413615571573030322 0ustar terceiroterceiroxKÊÉOR01c0ä"íöwruby-git-1.6.0/tests/files/working/dot_git/objects/94/0000755000175000017500000000000013615571573022751 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/94/c827875e2cadb8bc8d4cdd900f19aa9e8634c70000644000175000017500000000012713615571573030344 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°Zãí ¾â{€ZÁÝý%NÂw=Û°ôruby-git-1.6.0/tests/files/working/dot_git/objects/98/0000755000175000017500000000000013615571573022755 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/98/fb6a686563963b8f7e552d747158adbc1c2bd60000644000175000017500000000002213615571573030124 0ustar terceiroterceiroxKÊÉOR°`0ä‚@ôäruby-git-1.6.0/tests/files/working/dot_git/objects/92/0000755000175000017500000000000013615571573022747 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/92/4dec9203af851c3b3e564697ab3004b35b3c2f0000644000175000017500000000002513615571573030062 0ustar terceiroterceiroxKÊÉOR042b0ä(Œdruby-git-1.6.0/tests/files/working/dot_git/objects/ba/0000755000175000017500000000000013615571573023077 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/ba/c335cb9dc058a477d04cde34c07d1f70d16fb90000644000175000017500000000013013615571573030361 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(açüôvç›ê±¢ÓØ 7'ŸÊtøýðF"(ruby-git-1.6.0/tests/files/working/dot_git/objects/ba/492c62b6227d7f3507b4dcc6e6d5f13790eabf0000644000175000017500000000002713615571573030317 0ustar terceiroterceiroxKÊÉOR04²`0äHhÄø˜ruby-git-1.6.0/tests/files/working/dot_git/objects/9f/0000755000175000017500000000000013615571573023033 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/9f/a43bcd45af28e109e6f7b9a6ccd26e8e193a630000644000175000017500000000025213615571573030413 0ustar terceiroterceirox­ŽA E]s .`3ÃBbŒ‰'¡µ]´4tšx|‰gp÷ß_¼<®ëºˆ6Þ_¤•¢ —É¡ ­ÍÌÆ›Œ~,& aM޲›LT{je=!¦LS"F{syr"£àCAâˆ*2צ®"ú5'®›¾üÏôN¹¶£;eáó¸¶}h%±´åÓi}hÄhÞ¡¾BPýíåRþéT=dÙÔôVÜruby-git-1.6.0/tests/files/working/dot_git/objects/9d/0000755000175000017500000000000013615571573023031 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/9d/6f937544dc3b936d6ee1466d6e216ba18d56860000644000175000017500000000012713615571573030053 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a(1Ú.)%QlúÜëÙ‡iYuo5ËÜh Èruby-git-1.6.0/tests/files/working/dot_git/objects/9d/3ad2f09cb7a1d4f4c91182c96f2be537fbc4ff0000644000175000017500000000006413615571573030467 0ustar terceiroterceirox+)JMU06c040031Q(I­(Ñ+©(a¯½Ûé`|$+þ¼N¾_ᙢ™œ?á#ruby-git-1.6.0/tests/files/working/dot_git/objects/e6/0000755000175000017500000000000013615571573023027 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c53910000644000175000017500000000001713615571573030254 0ustar terceiroterceiroxKÊÉOR0` °ðruby-git-1.6.0/tests/files/working/dot_git/objects/9a/0000755000175000017500000000000013615571573023026 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/9a/e1fbd7636c99d34fdd395cf9bb21ad51417ce70000644000175000017500000000025113615571573030414 0ustar terceiroterceirox­ŽË Ã0DsVj FÿXB •¬V«Ø[FZCÊH 9ÌÌáñ°nÛÊÒ„páF$uŒÙ”™‚*9g’TÊ™F¬'0'e‹8 ÑÎB2]27¢K´%­µwF(¾D²8$àä¥6Ù±2Ë×Xwyïø+OxC®­&¯xö k;¦F€ÜÖÏXÛCjw18%¯jVJŒw˜3ý“)†Èº‹/~¬Y²ruby-git-1.6.0/tests/files/working/dot_git/objects/a3/0000755000175000017500000000000013615571573023020 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a3/62d30d5fe1021cabc4c90f073ba2511d5a43a10000644000175000017500000000013013615571573030153 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a˜äûfóúVk»0·é« X6GÛèáburuby-git-1.6.0/tests/files/working/dot_git/objects/a3/db7143944dcfa006fefe7fb49c48793cb29ade0000644000175000017500000000026213615571573030472 0ustar terceiroterceirox­ŽKjÄ0³Ö)úÔÖÇ„ÈIÚý‰ ñh4ãÇä Ù½ªEñ¸ç1aYËËìª`E+ç5–0"²—­úM¢zB žØÌ»u½OT kZS¶´É’·¼rR43©‹ä"7Å¨Žžso·9ás'nwxü7>苤õq5çÁÏqãÖ·®Ä³?ï€XcKM^}ñÞ]öz>õ?›ŽDT`(uÞÁŽou¿vd\¯ruby-git-1.6.0/tests/files/working/dot_git/objects/a3/c1f067074cdc9aa998cb5f3cad46a6f17aab2d0000644000175000017500000000025213615571573030526 0ustar terceiroterceirox­ÎÁ à …áž™‚HªªR'ÁirHˆÀ‘:~igèÍχO?çm[E£÷))i œÀ†<Ò0x`ì'çì<‹ÄÆÇ9 :bI»èÉX&†ÀÜÛ™¼u HÁÛ %gxÄ€4ªxÊ’‹®œEôs‰œw}«ü;ñ§\j3eå³vœËÑ•YÊúnk»kc‚uö+ëkËÕ¾­\Ò?MÕBÖ]}b~WTruby-git-1.6.0/tests/files/working/dot_git/objects/3a/0000755000175000017500000000000013615571573023020 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/3a/9f195756f5bd26b67c5e1fffd92d68d61be14e0000644000175000017500000000025313615571573030347 0ustar terceiroterceirox­ŽQ Â0Dýî)öʦI³ ˆžd»Iµ`MIVðøÏàß¼yŒ”m[Fƒ֜af±v’9&Á)°#Jè$eë)™…0¿Ìqع旂 ÞgƒÉ#…À±h²#w°H‹ iô¿õQ*4)ªp{°”œ›ü•ïœJmÝ©«¼ÛIJÝO5³h]?¶ ÝäcpއÞöçšÿéìÒòÍM‡/ÎhX·ruby-git-1.6.0/tests/files/working/dot_git/objects/3a/ac4b445017a8fc07502670ec2dbf744213dd480000644000175000017500000000003113615571573030047 0ustar terceiroterceiroxKÊÉOR046`0äHhÄeIJQruby-git-1.6.0/tests/files/working/dot_git/objects/7f/0000755000175000017500000000000013615571573023031 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/7f/bfee9f8882ada1ec45c4925baf5649d96c4a160000644000175000017500000000002513615571573030425 0ustar terceiroterceiroxKÊÉOR044b0ä¢/ðð<ruby-git-1.6.0/tests/files/working/dot_git/objects/7f/86d16e0254f64f784198c6a55ef9bf7adbe7ce0000644000175000017500000000012713615571573030361 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸U]Ñ-Z:9˹‘•M`q¹ùqîÐàT—ruby-git-1.6.0/tests/files/working/dot_git/objects/7f/5625f6b3c7213287a12c89017361248ed889360000644000175000017500000000025413615571573027463 0ustar terceiroterceirox­ŽAnà E»æ\ Ö` RTEÊI†aÜxaá±Ôãõ Ýý÷OÛ¾ojç¿´‹Xï¥R)è=r‘„™pYꜲçZ–˜VòyS—C-² Ò‚.«ÌÅy·ÖÂ"¥¸º2W†dèÒWëöä¦jŸ/âvØûÉãA?T[?‡S7¾Î‰[O]ˆµo¿ƒöoë\Æ€9†loÌxG¹Ê:ÍÙó†°Xºruby-git-1.6.0/tests/files/working/dot_git/objects/4e/0000755000175000017500000000000013615571573023025 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/4e/ebc1b62c53241b7fbf7fb33b5230362595bfdd0000644000175000017500000000013013615571573030276 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸À2ño]ô¶_GÅì6Ú±•-x®/úc!íruby-git-1.6.0/tests/files/working/dot_git/objects/4e/aafb1d843aec4f8f1612d03de46a08c2143ea90000644000175000017500000000013013615571573030351 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aàJúöÎ4håì‚ÆÅâ/4æfùöë¸!>ruby-git-1.6.0/tests/files/working/dot_git/objects/da/0000755000175000017500000000000013615571573023101 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/da/597fb7fba247a5b59d917e90342cf4b96959050000644000175000017500000000012713615571573030131 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a8Øí7›CÓQœõú¯Y¢‹x;*8ÄÝ`Bruby-git-1.6.0/tests/files/working/dot_git/objects/da/7b788b1575936a4381050610a37737c70b55a00000644000175000017500000000002313615571573027504 0ustar terceiroterceiroxKÊÉOR06c0ä" §÷Oruby-git-1.6.0/tests/files/working/dot_git/objects/8b/0000755000175000017500000000000013615571573023026 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/8b/00d915a0ee5aeb32e0b166e1054c2901338c9d0000644000175000017500000000025113615571573030046 0ustar terceiroterceirox­ŽM F]s .`XþcL<É̶‹–¦‰Ç—xwß÷/ê¶­,sn9KÅŸ¬F%¥Yͼ¶AgÄ: å "q@Ë;KKÚ €Ñ´º8¥B‰Þ4>¢.)«” z'àä¥6Ù©2Ë×TwyïôOxCª­'¯tö‰j;¦–¸­Ÿñ¶‡Ô:ÎvŽÎZyUA)1è(çüO§!ë.¾ý‚Y6ruby-git-1.6.0/tests/files/working/dot_git/objects/f1/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/f1/410f8735f6f73d3599eb9b5cdd2fb70373335c0000644000175000017500000000025013615571573030114 0ustar terceiroterceirox­Ž[ Â0EýÎ*²Ë䂈àJ’ÉTûѦ$Spù×à×}À=\¬Û¶²ÔÞ_¸I¦„ ãœÁÙ`õâ ”˜"R@tª˜hUqyGj´³Ì”•5hÑÞÙ!˜ øL }S ‘N~×&;Vfù|'¬»¼uü™Gz¥R[L^ñìÖvLr[?#mw©Ôl½y… F;ž3ý“)Æ‘u_9Xˆruby-git-1.6.0/tests/files/working/dot_git/objects/f1/25480ee106989ec4d86554c0d5a1487ad4336a0000644000175000017500000000025313615571573027746 0ustar terceiroterceirox­ŽAn! E»æ\ p@ŠªH=‰1¦™Å ãH=~PÏÐÝÿoñôxìû¦?tŠX.!øÞ¥\kÅs¯×‚j\¬yðÌ“¦j]Ï1‘£’}eèèCŠ[ƒŠB] §ÄÐ ½ô1¦=y¨Úïñ8ìíä¿q§jcžË©¿Î ù¼L!Ö¹ý®·YïKL±`(öÓeçÌ¢«\å?f…l‡ydX®ruby-git-1.6.0/tests/files/working/dot_git/objects/4c/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/4c/ce9432b2f80461324a61611f6143f8544cd80f0000644000175000017500000000002313615571573027644 0ustar terceiroterceiroxKÊÉOR06a0ä"›ruby-git-1.6.0/tests/files/working/dot_git/objects/4c/e44a75510cbfe200b131fdbcc56a86f1b2dc080000644000175000017500000000025113615571573030342 0ustar terceiroterceirox­Ž[ à Eûí*Ü@ƒã+ ¥º’qÔ6‰ÁL Ë¯t ý»îáR[×…¥öþ½‰ÆëlTvµ€Ò@˜ÈRTUÍ&¡vÙ¡5bÇ^6–6Í£vÆÄ0v úZmÄ9—\€ì‘Jxò»uyPc–Ï7RÛäí Ÿxà sëÇ`òBç1QëûÔ ÷å3Üz—Ñ:½‹òª‚Rb¤ã9—2Å8²lâ Q*XŠruby-git-1.6.0/tests/files/working/dot_git/objects/4c/411dc8e6ea6fcba0ed56e84aa7707f881d24c70000644000175000017500000000013013615571573030376 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a»ø3ëüM]Î#¿æš8® ½kÀýŽ!áruby-git-1.6.0/tests/files/working/dot_git/objects/82/0000755000175000017500000000000013615571573022746 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/82/d331cf4d3d4ee537c4f866cab2633b46a8d0900000644000175000017500000000025313615571573030157 0ustar terceiroterceirox­ŽAnÄ E»æ\ #Û1¤QU©'1t²HÔãõ Ýý÷OOûqìæ)Æ7µz¤ZÖ57Î 9rYH2ñ–q+[ÔEtOõ4Ÿ ! Œ‹¢g R abjP4A [KN^öèÃ_ÚÍü×C´Ÿþ~éßø”oÙú¸¦Óv}]7íãyUÔÆþ3éøðˆ™çؿà àæ;Ë­þ§ÓÍýt¿Ã4Vžruby-git-1.6.0/tests/files/working/dot_git/objects/fc/0000755000175000017500000000000013615571573023105 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/fc/b49fa99454f804799a12095292edbca48779ab0000644000175000017500000000002313615571573030126 0ustar terceiroterceiroxKÊÉOR04a0äB†6³Âruby-git-1.6.0/tests/files/working/dot_git/objects/a5/0000755000175000017500000000000013615571573023022 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a5/1546fabf88ddef5a9fd91b3989dd8ccae2edf30000644000175000017500000000025113615571573030726 0ustar terceiroterceirox­ŽM Â0F]ç¹€%“ÿ‚ˆàI&Ó©vѦ¤SðøÏàî}ßâñ¨®ë"ÚÆx‘ÆÜÁ±£`“1žSIÞòsò‰ Ì%1@¶aJ¨vl¼‰.‚+yæàÍyбŒÉ#›àœËX#ÌFá)ïÚôAUD?ßHuÓ·ƒ~ðÀNµÝ) Ç@µíCc$i˧¯õ®Fü}ÐW“QýíåÂÿtª²lê N3W<ruby-git-1.6.0/tests/files/working/dot_git/objects/e9/0000755000175000017500000000000013615571573023032 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/e9/0de8268373e4fd5ab13310b7745d47ec16813c0000644000175000017500000000002413615571573030017 0ustar terceiroterceiroxKÊÉOR05a0ä"-úbruby-git-1.6.0/tests/files/working/dot_git/objects/fb/0000755000175000017500000000000013615571573023104 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/fb/8e78840d79085abf50edebf5b9d6b73ee0fb4c0000644000175000017500000000002413615571573030556 0ustar terceiroterceiroxKÊÉOR07c0䢭 ïruby-git-1.6.0/tests/files/working/dot_git/objects/f2/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/f2/ff401fb3fc81f8abb3ca15247aadc1e22b62880000644000175000017500000000025113615571573030434 0ustar terceiroterceirox­ŽM Â0F]ç¹€eÒü4Á“L'í¢MI§àñ žÁÝ÷¾ÅãQ]×EôÂE³¦àÃÄca"b“ED¤q.iŠ0YcvjÇÆ›hÈÞ$ÂD#çLÎ9k¸°±>C¡˜ Ü&¯ð”wmú *¢Ÿo¤ºéÛA¿ñÀæÚŽî”…Îc Úö¡1’´åÓi½kc’ó.ô"€êo/þ§SõeS_$…Y[ruby-git-1.6.0/tests/files/working/dot_git/objects/f2/02cb755135d4263589602783b04fb32a079d880000644000175000017500000000002413615571573027516 0ustar terceiroterceiroxKÊÉOR0±`0ä" ý´´ruby-git-1.6.0/tests/files/working/dot_git/objects/c6/0000755000175000017500000000000013615571573023025 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/c6/567e2feccce3893ae0aaac2bf97807338aa8d40000644000175000017500000000013013615571573030457 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aX¸˜mÞŸcοsÒü2wܲMló!ˆruby-git-1.6.0/tests/files/working/dot_git/objects/73/0000755000175000017500000000000013615571573022746 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/73/b171450704ea4350f9f884426389fe04c6cd510000644000175000017500000000013013615571573027601 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°5–ݩշ–55}Þï²Ïë2ßJ—ßí ýruby-git-1.6.0/tests/files/working/dot_git/objects/fa/0000755000175000017500000000000013615571573023103 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/fa/6312f71abb153ada6a0399ad710d21bb61e4d80000644000175000017500000000013013615571573030255 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(axüú}YPüËg/îÏ4YÐ*tÿ{ù0$¼ruby-git-1.6.0/tests/files/working/dot_git/objects/66/0000755000175000017500000000000013615571573022750 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/66/80a909b0e02b297bedbe143ef789d2972353580000644000175000017500000000013013615571573027751 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(ap™Q{3ƸkqQªã§‚Ë·ÆÌ ó…"Jruby-git-1.6.0/tests/files/working/dot_git/objects/99/0000755000175000017500000000000013615571573022756 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/99/3dd9b1cdeab53e305886c91dbcbc8929eff22e0000644000175000017500000000002313615571573030475 0ustar terceiroterceiroxKÊÉOR02b0äÂY ­ruby-git-1.6.0/tests/files/working/dot_git/objects/5c/0000755000175000017500000000000013615571573023024 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/5c/16fb8b958b51f6008f9722b279b1fde0defb760000644000175000017500000000025313615571573030257 0ustar terceiroterceirox­ŽAnÄ E»æ\ #ƒÒ¨ªÔ“ãt²HÔãõ ÝýÿOOúqìæÑ› UO” ” ¡†²VmU—ˆº­¹´ &LÙ=yèi>‡†¸È¶¨šp•¸e"á±FâÜ €ã—=úð—t3ÿõ`é§¿_ò7>ù›[×tÚ.¯ë&}ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a°Î{wóœó«N›/½j¶+M<Þ®›/ýU"Pruby-git-1.6.0/tests/files/working/dot_git/objects/4f/0000755000175000017500000000000013615571573023026 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/4f/4065121cb78fe6116ae7e3075f5c5a446bd08b0000644000175000017500000000013013615571573030065 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aÈ»Ôx<|eæÿGú¶ç—6ó«TWý‘!ßruby-git-1.6.0/tests/files/working/dot_git/objects/1d/0000755000175000017500000000000013615571573023021 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/1d/7be4117ded4534789d85c42ab579644cd3fa120000644000175000017500000000013013615571573030101 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(a¸|±PI®}1ëÜä~ÑøÎ©Sofå{ ¾ruby-git-1.6.0/tests/files/working/dot_git/objects/1d/9e4767a95047ca5e395714985afaedb186f4cd0000644000175000017500000000002313615571573030202 0ustar terceiroterceiroxKÊÉOR06`0ä‚ݘruby-git-1.6.0/tests/files/working/dot_git/objects/b9/0000755000175000017500000000000013615571573023027 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/b9/8f4909807c8c84a1dc1b62b4a339ae1777f3690000644000175000017500000000025213615571573030043 0ustar terceiroterceirox­ŽK 1D]ç¹€’ÿDOÒétt32-x|ƒgpQPU‹Çþ® K‰‘ÄêLÖκµT|Äæ½VP+¦¬Š.‘ØaÐÆ²Q1ˆ-%›#ššm³IëTˆ…L4‘ X«Š€7¿úvfùxöM^ü•;<¡öqL&/ø>.ØÇ~Ècù̵ޤÖÙy—ƒò¬’Rb¾ÓœéŸL1E–M|9 XKruby-git-1.6.0/tests/files/working/dot_git/objects/b9/84607a41cc1f5c512a49213404b1b4cf8df4a60000644000175000017500000001600213615571573030057 0ustar terceiroterceiroxí]msÛ8’¾Ïþ˜¹Úµ|–h‰zŸ·ÇV6ºKì”ìlnnjkŠ"A›YÔŠT_*ÿýžn(R=‰ëfë’š‘-¢Ñht7î=ÅSÑnö†­ ¢0ÆM” ïdMO~KÒ¥ôî~ V‹™üàü=ÓòçÑ<„ßõú–ï8ž+›Á@ŠV³ÙëtÆ6ŒÇÇÇ[±þü³h¸½ú@óçÏ?ˆq«™tä‡E¼Lñ£8gê¾?ï½¥X¥Ñ Ï–ò«h)k‡ôýðèûƒ5N¤xÓ™´Ì1QnË€ß.£tð½n#àãm˜Œ6n/ý·±cÂ4'šßJ šÔÔlëÙ\@8Ø*¹…—$éí2^ÝÜÅ—oÔ2ôºr8èu§Ýnún§¿]†Ý‹‚Ü`ivë}H“>·Hó5(¾VÓÌXn×Kož„ñò®Lp©iÌ„Q ¾fo®ÃN¥Ù`½EZ]dƒì€}‘ûV‹f}Óo‡²-gØôîp°õvß"ßíVfz»Þj‚ëíz»¶WÐDë>n~uÌ/W©—Ò‚É}'É0çF#[$ò½œ§Éá‘3¢_FwQšÊ%VHŠÚ7£‘3‹’TÎåò,^ÍÓ#±ù¨ÂÕÜO£x^“ªs]¤ y$> ,êtµœ Ý”aKj ãÌäü&½ÅpŸð¿ôÖÍ›9‰LÇww2ˆ0—#QòÐZØÀµpž×ÑŒW)šê¢I€Æã)jÄþLzËâxùÇöˆù–Z”’[Í ‘PñÿŠ ´-e²i-ìTmE°2-ÉXï0šË@l é˜ÌkfJýx)Ô£AƘ³X“¢FСˆæ¼ZƉÆ!øë¯á߀‚:üÎ>cõÑüæ\úq@zÂk=ÓÕîãð—Y|S;\O‹ (7h¶ó$ 䑵‡œ%R¤Ë¥X>›ªÁvx”ù“ð½Ô¿5¹Ô³4=3½ÅsRLpÓp›TJh$¡ZžíA“Œb§Ùa«˜­áß®æïÆó÷Þ, j ­ÃºzFƒÿÁ4žâðŒà¸Äž]Ü Bvòwp”™-þügñz"!|#ø½pÔ/‡ÈAw&Gài ù j4aúGƒ(( ã_ôÒÍðÝ{º C¹t«äVõŠ­[]fÖ‹¦ÖnÒ¶vÚ ‡¡WeÚô½°»c›Ëu.Û\3‰³×!‡Ÿ-2¶$¥‚Çrm¶,RÖzµ«Û«Íø%Ê÷Êö¶"àzc[ƒþ±—¾²:ơɘQמ/Œ>qŠr¶ZŒ˜á‰ݦㄡ;L·o©vߢ”íVÞRûõvÔ~½å–î¨oµƒ›_óË•ÞQsßIþØR£Å­,—­¦k» úó‚5ó³ ±®Õ’¹ki'pmà <ó§/ÈHÈŽ‘=cÛ`¬lÆS¥-ÇÉIÖ"ü{S”o±˜E2i¬ÕKgzK1~ȇåó8%Ó„îÑvkîË8Ì0´³1wŒuý¦–Þb4 ÄLçˆmm¡Y±ÒQëùˆ·-ö! €{ðd{VÑ+\í7Íå}6©Œq¬wSŒç·{­µFCíR¡›Ö8•Iz’Dw8,žÐï %ºÆ4ºi W ¶”^¼²Ýô%Ž"?p[‚G-ä*¼¨[¤˜.}*ÃÍûY|wÏm•wœŸfNŽ,r™Ú0ê °yWŒ°ԓ̬0 þˆºzInþ˜Ù!™)l™ _û˜ß5·ñ[ycá­ì–TÎÚi¿Ýï÷'è4eèW”UÓniåaY^öa’çMœŽæ¸zpð˜/XÔ¯¼wR$+,ô{)‚x~˜Š»(Ih] `|la_VÍ^4ê,¡™˜]Ú¬ú2Af܆÷GzSkdjÁ2Ù™ôIx¦#ûK¬Þl&zlML‹ø·¥~lÎMd s.Ò6a/¢…lx!h ð`·À °Fèž”Cì®Í©´{½üîZydªÏÂw9.DŸ´X¿ÄRÕ¾˜€-eã»)(”­lcË€9ÍVyf¥v´Íc{´ˆÍƒÝÍm§'Qب¯a« i¹ÀRuE¢3ê|µ¨ Fkȃ@ÎdŠ­9Œ’ƒ“œÅ U41ì †íîÚ¥þé0âN5±°“59 äû“ùj6ãƒV Þš+Ž›õ&©L–á,^<,£›ÛTüGü€E]Œç¾#<…Öa).ˆ*?ž§Ëhº‚G‘`Ã?9ᾯ咬œr3,§âž=¦TáRJ/¿õ–78·Áýðæb!— :ÄÓÔ‹æ8û qù ƒ Ù‡Hâ0½÷`­ˆ l$±Oa‹–Ë_ÝH#fZ"à-HÆðí•îõíHoFgr²q¦IÜGäø¤8ÒÃ|Dh©ÈŸ­ÐÂx È,BFD(˜I°˜±Àö€S(è­“È¢~Jžâb5E€ç¶Îx„z˜g€N¨Á—sê‰9À1KälFX"™¨y¯©d ¼ ŒM±Ç¿¿ïò³÷CÄ…0´ró‚X$1úwé§„É0)Œg³øžØ‘;˜ßÑ<È5æéMã÷$p£ð A9K‚eÃ4)¡ë¦äæYL¥æ£ 8OÍ 1áÕ”<Ë4‚X(pM¾íæÌ׺uýb$®.Ÿ_¿=ŒÄøJ¼ž\þu|>:ßž^áû·uñv|ýâò͵Ääôâúqù\œ^ü"þs|q^£ÿz=]]1)—1~õúåx„ç㋳—oÎÇÏÐ÷âòZ¼¿_ñõ¥ A5ºñè ¹û«ÑäìF8}6~9¾þ¥.ž¯/€[<âSñútr=>{óòt"^¿™¼¾¼Œs ¾_<Ÿ`¤Ñ«Ñŵƒ‘ÛÅ¥ýÄÕ‹Ó—/yÈÓ7˜ÉãMÄÙåë_&㿼¸/._žððÙž>{9RÃa‚g/Oǯ”ŽŸ¾:ý Q:— ~ šÊ·/Füh|zÄéÙõøò‚xtvyq=ÁWp/'×èªxD°oÇW£º8Œ¯ˆAÏ'—¯ê‚XŒ^Äà ê{1R˜ˆýL}&%€ c{&d4N_Äv‘ëa3ð5ȦÑR‡In‰—ê“–³XÆiLáM‡ö`˜¬(ž€¹…žšxj˜n½ù é6Œ-Ù$^-¡ºXl°óp6ɽî*ìuxé$ho‰ô÷̃FñG> ‚T´À³‹¡sº\Á…3 pRΰ¤("Ùä§Úºâã¡ã£När:à8å:ibvisštT/‚5M«É'´BÑ6y†Šãcÿ—" †/ã‡G ɘböáš=ªñl¦±ÔÀöÏ‰íÆ¡·¯d…ehG~§8•@éà™ ÏW³¯@#¬kRA–kH-Íf/ì´*´úÍ–7ô!M WyZÐ:¾NÉ0W¯Ã KkÿÂPç?#§/-Äm1‡B¼ûÕïïÇǺ—:üßà”Ñnq`µ@§^ÏëR¦ÌÈ^Øß(IØÝ.bÛ-Ò"ü?ŸPím2Œ–IjöDl Ïé;ÇÍê‚b4_ ~ÝßJþ2 à€%NNµýÒôk„7–Ò_-)Æ_QÖ…NZèî`Øò‚Vq YiÅU¼–=)³Y úœè¦O|Ý»ŸÝw1ò—z9O£ù*^%3„þ‘ɲ °q77(R¦¬Lå‡ô:òßñŽl';·™ H)Ùßqž2«ÊÃRáó=b÷‚}Eª;CþWSi‘(4y áV_&‰Ã=ÏåâW9¬´y¯æÉm¦ y·HªÂkç·-îòfð‡½NªÓ¸ýn{£*ø‘(w-t°ÊPqⱫK÷ª óÚ~µ)×ñmì4¨èqôhµg\åWkQ°š{n@­CߨÀE^1‡´Úö#'ûà~*A9eA%^;ó3ª»$ÿ … æ£4„fÐXz¾Üm^Œ\lp­ƒv CÜ¿5ð*–R„Õt#Gk—s¹ôYј´Á%G‚ë8[1B–%‰næ¨u…ý ”-n½v±4a„:Žàzlșէ4’~ á¤Î”ü tŒD­>cj”^•9Úi,l8þ·÷t Ͳ'¥ÐÊ:ѾAí£¸EJù-4tùÊ[¾ûNPŸOæ`Àe!þu¹êŸ\/Š˜s¡¦ƒKб0Po­Ë<ÿP „*úªÈK¹°µoˆ 2¸ëâ0Çfæ=awš*ÃØ©Ã q"~ú‘í» ŠWìûN=L([XaÅÓA¡µF¡§úµ"*.m#P# šK°?*,ª(x.Ž)6%Yw!¨ ‹ö Ccƒ 56…ž[·‹ªlú·f‚ª ]ÜJ³ÈqÀŸcU\Ý÷HyÈ÷»—t£×qwÚâØ†zänÛm…íjnþËîÅ»†ãKNý“¸öÅ壞Æí?X«%õ•\Ñ…“_q[`}Á@Õ­ãqó{ä3©†‰×ü®2?UL¯Û˜zIäïÎF §=hu¦!êœÜÎÀo!ן»×¶e ¶°ìŽÇÂÙ,BT\Q‡˜~‚aR1—õÙ†(+ZRµi6”2pv%™xSä´ß;Tôm;|U“ &²€£5fQú°G6›°ZF=?:rˆJïfè :ÕŽUn£€m¬ ðÿoe† C(¹iP0vÄòfM §n¿RuWÏk «Êk×im@³¬ž.¾h/Äϳ„´1+·Ø^©ê: "]ª æqí„PhjÓÑ­¶üÂÝ‘)·Áûêõd«çvš8¨Tª×3HI‚›ezý¯Uz_«ôàÉ­ÒûZ¥÷¨ÒS‘ìüÛ.‚؆b[ì2l/¤Cbæí…kïù•9j–™¾]qH• ª/œ©[»7}Ï|D.·Æ¡ÏBIâÙ{YS“sÂè®XË䡦>§ÒjC'_Pß±‚Rœb•VsÁnÓtáã¢âg­ÕõÒĵ#•ypݯÜWî«÷õžÅãžíý·]¥ ¼³‘%ÄÖ’yfô=ó­îzwÉá \oŠq/—;˜pÚoêž)<u9•±i—>ÇU$Í€‹Ð;>p¤òŠŸe»vÆ F=Û6iWc'äšÛDûÇÃ3¤kiS¹Æ’ÃïÄaмìÉb†Ûg‡¼Uц—P9l ¤ÓÞõéH— Ÿð5Òm¦ï4wþdA¯©S©N!ƒAĵÛ&ÚÐ!G«o¶%#¶¯=Þi ?Õ½]f=î1…$chvƒ„Úyh8W4_‚Ô—§frÄPùe:Èßb‘Z$ØâÌ®}¸²¸w§¼0¼ÎT)o‚hTRG 6ªú7écqi÷Âä©É•’¢´„\5 tÄæ‰I7e´*±“ßRÍW™Ñ•F¸)È]â0›í ÿ•€ë Néäe¯×ºUc€e÷˺P4°ÍÑ@þÄW2¯ß\½¸ÿ7½×Ê5Y>zvvù×Öø¦Šyüâí+<èÒWµÒ'šÙxš™HÉîÏ+O3¾¶Á ýP–,#¨9`]æy ën[·ù‡žÙ’”*½Háý+J¢ƒöuÆ‘cU\î[”fA*ý𧟲ÅG‹™Á$'l/~„dl|î P!ºÚŸ‚#hödtzNQˆKPo‡§5¥ò´(€PÔ·òº/ ÿƒøÓßFǤî`)‰œÂè=ø¡O"x”¬%œ -ÌY GõXL øª˜èJ4ïÆ œ«´È‡Þ­£–Å?è|8-ÐhW––Y¡? xË`g.ÕkHYÊ!²CY™Ä‹„0”M·6øª´gj“˜2L–8Tº]EÇaæF¸k@7¨³­šÀ¦³hè1n®CfÄ7”@Û4]7Ù4pÆ™–l-Oz;TK½$ªEUfw5u¼¾ÍY”W¤Ê+<ˆ˜SÎ:³JÙF¹A#æBj(†8ÒÄ–®ž<sB¯ÚÓïÞ¢¬=VZè½fE•Ó‰ýmœŠÈ-f` (SœÂŒ‡dÆ3UdÌñ‘y™õ>ˆÈúTqߊ§t!|_®c e2U²7l·dÃN?T«§vž=›“IÊÐÐOéS½†æqà’=hk’Bg´ºí Ë“+i²À*k\‚ywò˜»•QìfV%çŒr ”!>  (Ô[ˆY¿CñÐ;Y­ÎÓåÄeƒmfµë/Ûzh-ñCçÑ»oe;lËNÕ-wYöhÌ–^Z{þ/1²‹yÓ w^|zG(ô¥0šÕS‹-¸~(æöîuG7-Ü®ȶËMÝöÔíµøE7ýnw÷Ir ³IÏîÞÝ]YÌ…zÌýçÛ*ëŠ\àáyåÏÚÃx¸ÕJ|”1#O8̾DZùŠ2†Ñß'O¢e7íµeà·±0§î´)«šoÚ\0Î^9i0–É?Ki9G@JxÖÝVËfkóÛ-©È®(I59’wÚH?¢3¤ÿnH‹ÐZºràõÛÍ.Þ™Üï4½Í×U“¡)y#«¯öèû]BÁÓš[KHO{˜$Šdzup»=ño°¹n+Z]â 9 ºÞ]åŠó¸·(V뎮fk ÚÍV/‚êL[½î°ÚÕR%ã]È÷ì±{¦Å~<®Gñ›µÝú}5bã;LNøÞå󄱄¾0ÓâÈ- —~C‘1æYÕÓd ‘t µ êm`ýz;w~!¬ÀoŠ’ÍÄÊÑ!‚FåDbn`P£¥Ĺ eŸHš"ЉNÙë2&G¸´NX]Ž,®cfˆWQóyŸNßx“FãÈœŽËNÖ\…ËøŽ]ĪFÊî MS—sðŽj¤Q;~ëV¬ ÎlKeUƒ”ë´uÚµEóŠÙa¨À2-,î¦C{³}ÈœÍ<ÞüÍÀi7Ð|µ»}åÔ% ­ç;¦ž, —– R£ºÇÁûÁLÞxþC#X"¶WUö}´ø{ýn€kœ8´Â F‘ÈOp›•L ½––Þ=LyTU§T@µ:^ìQ© P­QÝÀõÛ.e²]„«f²7‘íQ¨Mð£¡6Óý®ÝÞc(W§LìMßl©7sÚÝ×u²mñÅ=n_5ó`ÿ=üa¹­;µ gÌ‚? ‚qÆ÷«½ÎÜmä0í‘`Vïìùd™Ò/åº[°¬L Œ£ÿ8\æí_›?MSÖ!£>ý–ŒûçXíZYJÈà³Vöv%y~ç!`5çhßT+IÐë!šŒ¿ôæ0{bïoí¥`öNCKu^ð_4%•A·a̪Ëþœ”Ê!Ê€Ô;mõ ݹ­(]øœÚV<¦÷oÌ9Á²SÊ µJL‡­i ‘±sþ뷪EUJñíÔŒÒ%†–ÛöË_¼JöîÚJ'>o¹Ò ÖIN!³#)ðv]Ò¡Ì2Ãÿ ßÄs7ruby-git-1.6.0/tests/files/working/dot_git/objects/0b/0000755000175000017500000000000013615571573023016 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/0b/5262f6ee3552a99b7081a317e8289d6a4d8e720000644000175000017500000000002513615571573027753 0ustar terceiroterceiroxKÊÉOR044c0ä¢?1¶ruby-git-1.6.0/tests/files/working/dot_git/objects/0b/c0d846cf80b079e763e35c3af273171bf01fca0000644000175000017500000000013013615571573030215 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(ax6÷ÑìM¯9{wk®+ºqèIOðD x#Éruby-git-1.6.0/tests/files/working/dot_git/objects/0b/2fe00801b62b7760c23d554796b05abc16af920000644000175000017500000000013013615571573027766 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aÐ~–~ñF_éæ_ü³¶=ºñÿ²–(‚#Cruby-git-1.6.0/tests/files/working/dot_git/objects/3b/0000755000175000017500000000000013615571573023021 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/3b/6eeed9ce43ea893cf48d263da93448edae9f1c0000644000175000017500000000002513615571573030562 0ustar terceiroterceiroxKÊÉOR040`0ä¢=@ ×ruby-git-1.6.0/tests/files/working/dot_git/objects/74/0000755000175000017500000000000013615571573022747 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/74/32b657191a10587335e74ae6f0966a7eed29760000644000175000017500000000002513615571573027620 0ustar terceiroterceiroxKÊÉOR04°`0䢶¯Ëruby-git-1.6.0/tests/files/working/dot_git/objects/23/0000755000175000017500000000000013615571573022741 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/23/751ef6c1fed1304ae1d07020aa73da6f2b93b00000644000175000017500000000002313615571573030172 0ustar terceiroterceiroxKÊÉOR0²`0ä xˆdruby-git-1.6.0/tests/files/working/dot_git/objects/5b/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/5b/0be7da7cc9ecdb6c2de5f818c30a42fbd2c9fa0000644000175000017500000000025413615571573030753 0ustar terceiroterceirox­ŽKn! D³æ\ #æciEÊI m2½èfD{¤?(gÈ®ª¯^DZ«õ)½é±Ñ#„R=TO¹#l¹HÞJ@ 0æà|5Ožrª•S ±U¢Œ9`ꎺpì®2Ú=Änø¥1íÕ†ªýzp§½_í/|ò7oc^‹©{{]·6æó6…›ÎýgµãÃ:·®‘’}‡`ÖºÌUþ“i–È~š_û¾Wruby-git-1.6.0/tests/files/working/dot_git/objects/a6/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/a6/b25c4b27ee99f93fd611154202af5f9e3c99de0000644000175000017500000000025213615571573030256 0ustar terceiroterceirox­ŽA E]s .`Ì@!1ÆÄ“LÐ.Z /ñ îþû‹—ÇmÛVÑ.„“ôR4{‚š€j¼[bµs&ŽÀ` Î!:*.¤^ÔË.ºZç1šR¬ )¦Â˜cðÙdOãL)z˳u}pÑ÷'qÛõåà߸уrëÇpÊÊïcâÖ_S/ÄÒ×Ï íª­Mè1Húl¢1j¼£\Ê?j„¬»úµÈW¦ruby-git-1.6.0/tests/files/working/dot_git/objects/d0/0000755000175000017500000000000013615571573023020 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4d0000644000175000017500000000002113615571573030215 0ustar terceiroterceiroxKÊÉOR0b0ä-ruby-git-1.6.0/tests/files/working/dot_git/objects/3d/0000755000175000017500000000000013615571573023023 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/3d/331db92a8ead0565679efb76f328ae69ed1b770000644000175000017500000000002513615571573030257 0ustar terceiroterceiroxKÊÉOR042`0änÚ'ruby-git-1.6.0/tests/files/working/dot_git/objects/33/0000755000175000017500000000000013615571573022742 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/33/edabb4334cbe849a477a0d2893cdb768fa30910000644000175000017500000000013013615571573030231 0ustar terceiroterceirox+)JMU07b01…ÔŠø”Ì"†ìJÞ;q« >ö¬¾Ë*üâÇ­—.¿540031ªHÌ-ÈIÕ+©(aX(êhÊ8e¾?g£üÅUo>š:~Ú½!ruby-git-1.6.0/tests/files/working/dot_git/objects/33/8ecb0183d507498aedb669b796b4f9e8880f000000644000175000017500000000002413615571573030044 0ustar terceiroterceiroxKÊÉOR01b0ä"Ïôýruby-git-1.6.0/tests/files/working/dot_git/objects/36/0000755000175000017500000000000013615571573022745 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/objects/36/fe213c328fd280f33abe00069c4b92eb5a88d10000644000175000017500000000025213615571573030144 0ustar terceiroterceirox­Ž] à „ûì)¼@ƒZ×(¥Ð“¬«i|H f=~¥gèÛÌ0||ÔÖµ²4Î]¸—" 8PÉ&@k5èiNJg›C&JŒÑIìØËÆ2šÍ-+7c*äS0)ƒIÁ£7fS¼À“—ÖåAY¾¤¶ÉûA¿ðÄ7æÖÁäJç1QëûÔ ÷úm}H­£Uòª‚Rb¬ÃœË?™bˆÔM|O"Xcruby-git-1.6.0/tests/files/working/dot_git/info/0000755000175000017500000000000013615571573022017 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/dot_git/info/exclude0000644000175000017500000000036013615571573023372 0ustar terceiroterceiro# git-ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ ruby-git-1.6.0/tests/files/working/dot_git/config0000644000175000017500000000044213615571573022254 0ustar terceiroterceiro[user] name = Scott Chacon email = schacon@gmail.com [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [gui] geometry = 986x682+365+124 211 500 [remote "working"] url = ../working.git fetch = +refs/heads/*:refs/remotes/working/* ruby-git-1.6.0/tests/files/working/scott/0000755000175000017500000000000013615571573020567 5ustar terceiroterceiroruby-git-1.6.0/tests/files/working/scott/text.txt0000644000175000017500000000011313615571573022307 0ustar terceiroterceirohello this is a file that is put here to search one to search two nothing! ruby-git-1.6.0/tests/files/working/scott/newfile0000644000175000017500000000002513615571573022140 0ustar terceiroterceiroyou can't search me! ruby-git-1.6.0/tests/files/working/example.txt0000644000175000017500000000004213615571573021623 0ustar terceiroterceiroreplace with new text - diff test ruby-git-1.6.0/tests/files/encoding/0000755000175000017500000000000013615571573017541 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/test2.txt0000644000175000017500000000007713615571573021347 0ustar terceiroterceiroÀ̰ÍÀº ÆÄÀÏÀÌ´Ù À̰ÍÀº µÎ ¹øÂ° ÁÙÀÔ´Ï´Ù À̰ÍÀÌ ¸¶Áö¸· ÁÙÀÔ´Ï´Ù ruby-git-1.6.0/tests/files/encoding/dot_git/0000755000175000017500000000000013615571573021172 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/refs/0000755000175000017500000000000013615571573022131 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/refs/heads/0000755000175000017500000000000013615571573023215 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/refs/heads/master0000644000175000017500000000005113615571573024427 0ustar terceiroterceiro5482c9609dd461acafcc859279490acfdea01f00 ruby-git-1.6.0/tests/files/encoding/dot_git/COMMIT_EDITMSG0000644000175000017500000000003213615571573023254 0ustar terceiroterceiroA file with Japanese text ruby-git-1.6.0/tests/files/encoding/dot_git/index0000644000175000017500000000032113615571573022220 0ustar terceiroterceiroDIRC\s>P3è­\s>P3âýhq ¤õSÏ’"å8*þ §r¢Ë7†x9®d test1.txt\s> DÜ\s> |º8qÕ¤õB‡ÙªˆO„ÆzÂU0ð¸M^ëÚ>Ê test2.txtTREE2 0 ÔüYÿ÷½hë8¯¯Êæ1«>Pþð^îÉ©¿ÂFÙ8¥vèqâ¾çkruby-git-1.6.0/tests/files/encoding/dot_git/hooks/0000755000175000017500000000000013615571573022315 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/hooks/applypatch-msg.sample0000755000175000017500000000073613615571573026462 0ustar terceiroterceiro#!/bin/sh # # An example hook script to check the commit log message taken by # applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. The hook is # allowed to edit the commit message file. # # To enable this hook, rename this file to "applypatch-msg". . git-sh-setup commitmsg="$(git rev-parse --git-path hooks/commit-msg)" test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} : ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/prepare-commit-msg.sample0000755000175000017500000000272413615571573027240 0ustar terceiroterceiro#!/bin/sh # # An example hook script to prepare the commit log message. # Called by "git commit" with the name of the file that has the # commit message, followed by the description of the commit # message's source. The hook's purpose is to edit the commit # message file. If the hook fails with a non-zero status, # the commit is aborted. # # To enable this hook, rename this file to "prepare-commit-msg". # This hook includes three examples. The first one removes the # "# Please enter the commit message..." help message. # # The second includes the output of "git diff --name-status -r" # into the message, just before the "git status" output. It is # commented because it doesn't cope with --amend or with squashed # commits. # # The third example adds a Signed-off-by line to the message, that can # still be edited. This is rarely a good idea. COMMIT_MSG_FILE=$1 COMMIT_SOURCE=$2 SHA1=$3 /usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" # case "$COMMIT_SOURCE,$SHA1" in # ,|template,) # /usr/bin/perl -i.bak -pe ' # print "\n" . `git diff --cached --name-status -r` # if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; # *) ;; # esac # SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" # if test -z "$COMMIT_SOURCE" # then # /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" # fi ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/pre-push.sample0000755000175000017500000000250413615571573025267 0ustar terceiroterceiro#!/bin/sh # An example hook script to verify what is about to be pushed. Called by "git # push" after it has checked the remote status, but before anything has been # pushed. If this script exits with a non-zero status nothing will be pushed. # # This hook is called with the following parameters: # # $1 -- Name of the remote to which the push is being done # $2 -- URL to which the push is being done # # If pushing without using a named remote those arguments will be equal. # # Information about the commits which are being pushed is supplied as lines to # the standard input in the form: # # # # This sample shows how to prevent push of commits where the log message starts # with "WIP" (work in progress). remote="$1" url="$2" z40=0000000000000000000000000000000000000000 while read local_ref local_sha remote_ref remote_sha do if [ "$local_sha" = $z40 ] then # Handle delete : else if [ "$remote_sha" = $z40 ] then # New branch, examine all commits range="$local_sha" else # Update to existing branch, examine new commits range="$remote_sha..$local_sha" fi # Check for WIP commit commit=`git rev-list -n 1 --grep '^WIP' "$range"` if [ -n "$commit" ] then echo >&2 "Found WIP commit in $local_ref, not pushing" exit 1 fi fi done exit 0 ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/pre-applypatch.sample0000755000175000017500000000065013615571573026455 0ustar terceiroterceiro#!/bin/sh # # An example hook script to verify what is about to be committed # by applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. # # To enable this hook, rename this file to "pre-applypatch". . git-sh-setup precommit="$(git rev-parse --git-path hooks/pre-commit)" test -x "$precommit" && exec "$precommit" ${1+"$@"} : ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/fsmonitor-watchman.sample0000755000175000017500000000637713615571573027360 0ustar terceiroterceiro#!/usr/bin/perl use strict; use warnings; use IPC::Open2; # An example hook script to integrate Watchman # (https://facebook.github.io/watchman/) with git to speed up detecting # new and modified files. # # The hook is passed a version (currently 1) and a time in nanoseconds # formatted as a string and outputs to stdout all files that have been # modified since the given time. Paths must be relative to the root of # the working tree and separated by a single NUL. # # To enable this hook, rename this file to "query-watchman" and set # 'git config core.fsmonitor .git/hooks/query-watchman' # my ($version, $time) = @ARGV; # Check the hook interface version if ($version == 1) { # convert nanoseconds to seconds $time = int $time / 1000000000; } else { die "Unsupported query-fsmonitor hook version '$version'.\n" . "Falling back to scanning...\n"; } my $git_work_tree; if ($^O =~ 'msys' || $^O =~ 'cygwin') { $git_work_tree = Win32::GetCwd(); $git_work_tree =~ tr/\\/\//; } else { require Cwd; $git_work_tree = Cwd::cwd(); } my $retry = 1; launch_watchman(); sub launch_watchman { my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') or die "open2() failed: $!\n" . "Falling back to scanning...\n"; # In the query expression below we're asking for names of files that # changed since $time but were not transient (ie created after # $time but no longer exist). # # To accomplish this, we're using the "since" generator to use the # recency index to select candidate nodes and "fields" to limit the # output to file names only. Then we're using the "expression" term to # further constrain the results. # # The category of transient files that we want to ignore will have a # creation clock (cclock) newer than $time_t value and will also not # currently exist. my $query = <<" END"; ["query", "$git_work_tree", { "since": $time, "fields": ["name"], "expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]] }] END print CHLD_IN $query; close CHLD_IN; my $response = do {local $/; }; die "Watchman: command returned no output.\n" . "Falling back to scanning...\n" if $response eq ""; die "Watchman: command returned invalid output: $response\n" . "Falling back to scanning...\n" unless $response =~ /^\{/; my $json_pkg; eval { require JSON::XS; $json_pkg = "JSON::XS"; 1; } or do { require JSON::PP; $json_pkg = "JSON::PP"; }; my $o = $json_pkg->new->utf8->decode($response); if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) { print STDERR "Adding '$git_work_tree' to watchman's watch list.\n"; $retry--; qx/watchman watch "$git_work_tree"/; die "Failed to make watchman watch '$git_work_tree'.\n" . "Falling back to scanning...\n" if $? != 0; # Watchman will always return all files on the first query so # return the fast "everything is dirty" flag to git and do the # Watchman query just to get it over with now so we won't pay # the cost in git to look up each individual file. print "/\0"; eval { launch_watchman() }; exit 0; } die "Watchman: $o->{error}.\n" . "Falling back to scanning...\n" if $o->{error}; binmode STDOUT, ":utf8"; local $, = "\0"; print @{$o->{files}}; } ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/pre-commit.sample0000755000175000017500000000314613615571573025603 0ustar terceiroterceiro#!/bin/sh # # An example hook script to verify what is about to be committed. # Called by "git commit" with no arguments. The hook should # exit with non-zero status after issuing an appropriate message if # it wants to stop the commit. # # To enable this hook, rename this file to "pre-commit". if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD else # Initial commit: diff against an empty tree object against=$(git hash-object -t tree /dev/null) fi # If you want to allow non-ASCII filenames set this variable to true. allownonascii=$(git config --bool hooks.allownonascii) # Redirect output to stderr. exec 1>&2 # Cross platform projects tend to avoid non-ASCII filenames; prevent # them from being added to the repository. We exploit the fact that the # printable range starts at the space character and ends with tilde. if [ "$allownonascii" != "true" ] && # Note that the use of brackets around a tr range is ok here, (it's # even required, for portability to Solaris 10's /usr/bin/tr), since # the square bracket bytes happen to fall in the designated range. test $(git diff --cached --name-only --diff-filter=A -z $against | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 then cat <<\EOF Error: Attempt to add a non-ASCII file name. This can cause problems if you want to work with people on other platforms. To be portable it is advisable to rename the file. If you know what you are doing you can disable this check using: git config hooks.allownonascii true EOF exit 1 fi # If there are whitespace errors, print the offending file names and fail. exec git diff-index --check --cached $against -- ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/post-update.sample0000755000175000017500000000027513615571573025774 0ustar terceiroterceiro#!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, rename this file to "post-update". exec git update-server-info ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/commit-msg.sample0000755000175000017500000000160013615571573025574 0ustar terceiroterceiro#!/bin/sh # # An example hook script to check the commit log message. # Called by "git commit" with one argument, the name of the file # that has the commit message. The hook should exit with non-zero # status after issuing an appropriate message if it wants to stop the # commit. The hook is allowed to edit the commit message file. # # To enable this hook, rename this file to "commit-msg". # Uncomment the below to add a Signed-off-by line to the message. # Doing this in a hook is a bad idea in general, but the prepare-commit-msg # hook is more suited to it. # # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" # This example catches duplicate Signed-off-by lines. test "" = "$(grep '^Signed-off-by: ' "$1" | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { echo >&2 Duplicate Signed-off-by lines. exit 1 } ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/pre-rebase.sample0000755000175000017500000001144213615571573025552 0ustar terceiroterceiro#!/bin/sh # # Copyright (c) 2006, 2008 Junio C Hamano # # The "pre-rebase" hook is run just before "git rebase" starts doing # its job, and can prevent the command from running by exiting with # non-zero status. # # The hook is called with the following parameters: # # $1 -- the upstream the series was forked from. # $2 -- the branch being rebased (or empty when rebasing the current branch). # # This sample shows how to prevent topic branches that are already # merged to 'next' branch from getting rebased, because allowing it # would result in rebasing already published history. publish=next basebranch="$1" if test "$#" = 2 then topic="refs/heads/$2" else topic=`git symbolic-ref HEAD` || exit 0 ;# we do not interrupt rebasing detached HEAD fi case "$topic" in refs/heads/??/*) ;; *) exit 0 ;# we do not interrupt others. ;; esac # Now we are dealing with a topic branch being rebased # on top of master. Is it OK to rebase it? # Does the topic really exist? git show-ref -q "$topic" || { echo >&2 "No such branch $topic" exit 1 } # Is topic fully merged to master? not_in_master=`git rev-list --pretty=oneline ^master "$topic"` if test -z "$not_in_master" then echo >&2 "$topic is fully merged to master; better remove it." exit 1 ;# we could allow it, but there is no point. fi # Is topic ever merged to next? If so you should not be rebasing it. only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` only_next_2=`git rev-list ^master ${publish} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git rev-list "^$topic" master` if test -z "$not_in_topic" then echo >&2 "$topic is already up to date with master" exit 1 ;# we could allow it, but there is no point. else exit 0 fi else not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` /usr/bin/perl -e ' my $topic = $ARGV[0]; my $msg = "* $topic has commits already merged to public branch:\n"; my (%not_in_next) = map { /^([0-9a-f]+) /; ($1 => 1); } split(/\n/, $ARGV[1]); for my $elem (map { /^([0-9a-f]+) (.*)$/; [$1 => $2]; } split(/\n/, $ARGV[2])) { if (!exists $not_in_next{$elem->[0]}) { if ($msg) { print STDERR $msg; undef $msg; } print STDERR " $elem->[1]\n"; } } ' "$topic" "$not_in_next" "$not_in_master" exit 1 fi <<\DOC_END This sample hook safeguards topic branches that have been published from being rewound. The workflow assumed here is: * Once a topic branch forks from "master", "master" is never merged into it again (either directly or indirectly). * Once a topic branch is fully cooked and merged into "master", it is deleted. If you need to build on top of it to correct earlier mistakes, a new topic branch is created by forking at the tip of the "master". This is not strictly necessary, but it makes it easier to keep your history simple. * Whenever you need to test or publish your changes to topic branches, merge them into "next" branch. The script, being an example, hardcodes the publish branch name to be "next", but it is trivial to make it configurable via $GIT_DIR/config mechanism. With this workflow, you would want to know: (1) ... if a topic branch has ever been merged to "next". Young topic branches can have stupid mistakes you would rather clean up before publishing, and things that have not been merged into other branches can be easily rebased without affecting other people. But once it is published, you would not want to rewind it. (2) ... if a topic branch has been fully merged to "master". Then you can delete it. More importantly, you should not build on top of it -- other people may already want to change things related to the topic as patches against your "master", so if you need further changes, it is better to fork the topic (perhaps with the same name) afresh from the tip of "master". Let's look at this example: o---o---o---o---o---o---o---o---o---o "next" / / / / / a---a---b A / / / / / / / / c---c---c---c B / / / / \ / / / / b---b C \ / / / / / \ / ---o---o---o---o---o---o---o---o---o---o---o "master" A, B and C are topic branches. * A has one fix since it was merged up to "next". * B has finished. It has been fully merged up to "master" and "next", and is ready to be deleted. * C has not merged to "next" at all. We would want to allow C to be rebased, refuse A, and encourage B to be deleted. To compute (1): git rev-list ^master ^topic next git rev-list ^master next if these match, topic has not merged in next at all. To compute (2): git rev-list master..topic if this is empty, it is fully merged to "master". DOC_END ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/pre-receive.sample0000755000175000017500000000104013615571573025724 0ustar terceiroterceiro#!/bin/sh # # An example hook script to make use of push options. # The example simply echoes all push options that start with 'echoback=' # and rejects all pushes when the "reject" push option is used. # # To enable this hook, rename this file to "pre-receive". if test -n "$GIT_PUSH_OPTION_COUNT" then i=0 while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" do eval "value=\$GIT_PUSH_OPTION_$i" case "$value" in echoback=*) echo "echo from the pre-receive-hook: ${value#*=}" >&2 ;; reject) exit 1 esac i=$((i + 1)) done fi ruby-git-1.6.0/tests/files/encoding/dot_git/hooks/update.sample0000755000175000017500000000703213615571573025007 0ustar terceiroterceiro#!/bin/sh # # An example hook script to block unannotated tags from entering. # Called by "git receive-pack" with arguments: refname sha1-old sha1-new # # To enable this hook, rename this file to "update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # hooks.allowdeletetag # This boolean sets whether deleting tags will be allowed in the # repository. By default they won't be. # hooks.allowmodifytag # This boolean sets whether a tag may be modified after creation. By default # it won't be. # hooks.allowdeletebranch # This boolean sets whether deleting branches will be allowed in the # repository. By default they won't be. # hooks.denycreatebranch # This boolean sets whether remotely creating branches will be denied # in the repository. By default this is allowed. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "usage: $0 " >&2 exit 1 fi # --- Config allowunannotated=$(git config --bool hooks.allowunannotated) allowdeletebranch=$(git config --bool hooks.allowdeletebranch) denycreatebranch=$(git config --bool hooks.denycreatebranch) allowdeletetag=$(git config --bool hooks.allowdeletetag) allowmodifytag=$(git config --bool hooks.allowmodifytag) # check for no description projectdesc=$(sed -e '1q' "$GIT_DIR/description") case "$projectdesc" in "Unnamed repository"* | "") echo "*** Project description file hasn't been set" >&2 exit 1 ;; esac # --- Check types # if $newrev is 0000...0000, it's a commit to delete a ref. zero="0000000000000000000000000000000000000000" if [ "$newrev" = "$zero" ]; then newrev_type=delete else newrev_type=$(git cat-file -t $newrev) fi case "$refname","$newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname=${refname##refs/tags/} if [ "$allowunannotated" != "true" ]; then echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,delete) # delete tag if [ "$allowdeletetag" != "true" ]; then echo "*** Deleting a tag is not allowed in this repository" >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 then echo "*** Tag '$refname' already exists." >&2 echo "*** Modifying a tag is not allowed in this repository." >&2 exit 1 fi ;; refs/heads/*,commit) # branch if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then echo "*** Creating a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/heads/*,delete) # delete branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/remotes/*,commit) # tracking branch ;; refs/remotes/*,delete) # delete tracking branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a tracking branch is not allowed in this repository" >&2 exit 1 fi ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 ruby-git-1.6.0/tests/files/encoding/dot_git/logs/0000755000175000017500000000000013615571573022136 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/logs/refs/0000755000175000017500000000000013615571573023075 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/logs/refs/heads/0000755000175000017500000000000013615571573024161 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/logs/refs/heads/master0000644000175000017500000000052513615571573025401 0ustar terceiroterceiro0000000000000000000000000000000000000000 20aefc8947d5bf08710afabe7712a1d6040ed5bd James Couball 1551056495 -0800 commit (initial): A file in Greek text 20aefc8947d5bf08710afabe7712a1d6040ed5bd 5482c9609dd461acafcc859279490acfdea01f00 James Couball 1551056601 -0800 commit: A file with Japanese text ruby-git-1.6.0/tests/files/encoding/dot_git/logs/HEAD0000644000175000017500000000052513615571573022564 0ustar terceiroterceiro0000000000000000000000000000000000000000 20aefc8947d5bf08710afabe7712a1d6040ed5bd James Couball 1551056495 -0800 commit (initial): A file in Greek text 20aefc8947d5bf08710afabe7712a1d6040ed5bd 5482c9609dd461acafcc859279490acfdea01f00 James Couball 1551056601 -0800 commit: A file with Japanese text ruby-git-1.6.0/tests/files/encoding/dot_git/HEAD0000644000175000017500000000002713615571573021615 0ustar terceiroterceiroref: refs/heads/master ruby-git-1.6.0/tests/files/encoding/dot_git/description0000644000175000017500000000011113615571573023431 0ustar terceiroterceiroUnnamed repository; edit this file 'description' to name the repository. ruby-git-1.6.0/tests/files/encoding/dot_git/objects/0000755000175000017500000000000013615571573022623 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/objects/87/0000755000175000017500000000000013615571573023061 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/objects/87/d9aa884f84c67ac2185530f0b84d5eebda3eca0000644000175000017500000000012113615571573030510 0ustar terceiroterceiroxKÊÉOR03cØðxÉ’%ŸìXrï…%;—n]úyéõ¥¯—[ºvéÎ¥'¸–l^òfÉyÃWÎÜYr|ÉNÍ®ã;ž.9·ó Xµ%/Êruby-git-1.6.0/tests/files/encoding/dot_git/objects/cf/0000755000175000017500000000000013615571573023213 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/objects/cf/921422e5382afe0c90a772a2cb37867839ae640000644000175000017500000000013413615571573030132 0ustar terceiroterceirox DZ €0 @êLñ;Ð05+R Zú@,b‘àXöpÝÓìð{}Ëîª1 {ruby-git-1.6.0/tests/files/encoding/dot_git/objects/20/0000755000175000017500000000000013615571573023044 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/objects/20/aefc8947d5bf08710afabe7712a1d6040ed5bd0000644000175000017500000000021313615571573030462 0ustar terceiroterceiroxŽK 1]ç}%í¤óÅ…à-:™„M ŒÐÛðîE½PK™ u›¶ÄÉ ¸çDãhL`LÐ(¼ÓÄVjEè)hÁk›ê7.ñ—ºzÎ÷ð[§OµîB-G@"”¤•#ØJ+¥è´7[üÏgHsŽ0?áÚ? Åw_ =$ruby-git-1.6.0/tests/files/encoding/dot_git/info/0000755000175000017500000000000013615571573022125 5ustar terceiroterceiroruby-git-1.6.0/tests/files/encoding/dot_git/info/exclude0000644000175000017500000000036013615571573023500 0ustar terceiroterceiro# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ ruby-git-1.6.0/tests/files/encoding/dot_git/config0000644000175000017500000000021113615571573022354 0ustar terceiroterceiro[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true ruby-git-1.6.0/tests/files/encoding/test1.txt0000644000175000017500000000012613615571573021341 0ustar terceiroterceiroËïñåì éðóèì äïëïñ óéô Çéó åî ôïôá óèávéôáôå Íï èñâáíéôáó Öåèãéáô èñâáíéôáó ñåðñéìéqèå ruby-git-1.6.0/lib/0000755000175000017500000000000013615571573014255 5ustar terceiroterceiroruby-git-1.6.0/lib/git/0000755000175000017500000000000013615571573015040 5ustar terceiroterceiroruby-git-1.6.0/lib/git/working_directory.rb0000644000175000017500000000007213615571573021130 0ustar terceiroterceiromodule Git class WorkingDirectory < Git::Path end end ruby-git-1.6.0/lib/git/stash.rb0000644000175000017500000000056213615571573016512 0ustar terceiroterceiromodule Git class Stash def initialize(base, message, existing=false) @base = base @message = message save unless existing end def save @saved = @base.lib.stash_save(@message) end def saved? @saved end def message @message end def to_s message end end endruby-git-1.6.0/lib/git/version.rb0000644000175000017500000000015313615571573017051 0ustar terceiroterceiromodule Git # The current gem version # @return [String] the current gem version. VERSION='1.6.0' end ruby-git-1.6.0/lib/git/path.rb0000644000175000017500000000071013615571573016317 0ustar terceiroterceiromodule Git class Path attr_accessor :path def initialize(path, check_path=true) path = File.expand_path(path) if check_path && !File.exist?(path) raise ArgumentError, 'path does not exist', [path] end @path = path end def readable? File.readable?(@path) end def writable? File.writable?(@path) end def to_s @path end end end ruby-git-1.6.0/lib/git/branches.rb0000644000175000017500000000317113615571573017154 0ustar terceiroterceiromodule Git # object that holds all the available branches class Branches include Enumerable def initialize(base) @branches = {} @base = base @base.lib.branches_all.each do |b| @branches[b[0]] = Git::Branch.new(@base, b[0]) end end def local self.select { |b| !b.remote } end def remote self.select { |b| b.remote } end # array like methods def size @branches.size end def each(&block) @branches.values.each(&block) end # Returns the target branch # # Example: # Given (git branch -a): # master # remotes/working/master # # g.branches['master'].full #=> 'master' # g.branches['working/master'].full => 'remotes/working/master' # g.branches['remotes/working/master'].full => 'remotes/working/master' # # @param [#to_s] branch_name the target branch name. # @return [Git::Branch] the target branch. def [](branch_name) @branches.values.inject(@branches) do |branches, branch| branches[branch.full] ||= branch # This is how Git (version 1.7.9.5) works. # Lets you ignore the 'remotes' if its at the beginning of the branch full name (even if is not a real remote branch). branches[branch.full.sub('remotes/', '')] ||= branch if branch.full =~ /^remotes\/.+/ branches end[branch_name.to_s] end def to_s out = '' @branches.each do |k, b| out << (b.current ? '* ' : ' ') << b.to_s << "\n" end out end end end ruby-git-1.6.0/lib/git/repository.rb0000644000175000017500000000006113615571573017601 0ustar terceiroterceiromodule Git class Repository < Path end end ruby-git-1.6.0/lib/git/object.rb0000644000175000017500000001502313615571573016634 0ustar terceiroterceiromodule Git class GitTagNameDoesNotExist< StandardError end # represents a git object class Object class AbstractObject attr_accessor :objectish, :type, :mode attr_writer :size def initialize(base, objectish) @base = base @objectish = objectish.to_s @contents = nil @trees = nil @size = nil @sha = nil end def sha @sha ||= @base.lib.revparse(@objectish) end def size @size ||= @base.lib.object_size(@objectish) end # Get the object's contents. # If no block is given, the contents are cached in memory and returned as a string. # If a block is given, it yields an IO object (via IO::popen) which could be used to # read a large file in chunks. # # Use this for large files so that they are not held in memory. def contents(&block) if block_given? @base.lib.object_contents(@objectish, &block) else @contents ||= @base.lib.object_contents(@objectish) end end def contents_array self.contents.split("\n") end def to_s @objectish end def grep(string, path_limiter = nil, opts = {}) opts = {:object => sha, :path_limiter => path_limiter}.merge(opts) @base.lib.grep(string, opts) end def diff(objectish) Git::Diff.new(@base, @objectish, objectish) end def log(count = 30) Git::Log.new(@base, count).object(@objectish) end # creates an archive of this object (tree) def archive(file = nil, opts = {}) @base.lib.archive(@objectish, file, opts) end def tree?; false; end def blob?; false; end def commit?; false; end def tag?; false; end end class Blob < AbstractObject def initialize(base, sha, mode = nil) super(base, sha) @mode = mode end def blob? true end end class Tree < AbstractObject def initialize(base, sha, mode = nil) super(base, sha) @mode = mode @trees = nil @blobs = nil end def children blobs.merge(subtrees) end def blobs @blobs ||= check_tree[:blobs] end alias_method :files, :blobs def trees @trees ||= check_tree[:trees] end alias_method :subtrees, :trees alias_method :subdirectories, :trees def full_tree @base.lib.full_tree(@objectish) end def depth @base.lib.tree_depth(@objectish) end def tree? true end private # actually run the git command def check_tree @trees = {} @blobs = {} data = @base.lib.ls_tree(@objectish) data['tree'].each do |key, tree| @trees[key] = Git::Object::Tree.new(@base, tree[:sha], tree[:mode]) end data['blob'].each do |key, blob| @blobs[key] = Git::Object::Blob.new(@base, blob[:sha], blob[:mode]) end { :trees => @trees, :blobs => @blobs } end end class Commit < AbstractObject def initialize(base, sha, init = nil) super(base, sha) @tree = nil @parents = nil @author = nil @committer = nil @message = nil if init set_commit(init) end end def message check_commit @message end def name @base.lib.namerev(sha) end def gtree check_commit Tree.new(@base, @tree) end def parent parents.first end # array of all parent commits def parents check_commit @parents end # git author def author check_commit @author end def author_date author.date end # git author def committer check_commit @committer end def committer_date committer.date end alias_method :date, :committer_date def diff_parent diff(parent) end def set_commit(data) @sha ||= data['sha'] @committer = Git::Author.new(data['committer']) @author = Git::Author.new(data['author']) @tree = Git::Object::Tree.new(@base, data['tree']) @parents = data['parent'].map{ |sha| Git::Object::Commit.new(@base, sha) } @message = data['message'].chomp end def commit? true end private # see if this object has been initialized and do so if not def check_commit return if @tree data = @base.lib.commit_data(@objectish) set_commit(data) end end class Tag < AbstractObject attr_accessor :name def initialize(base, sha, name) super(base, sha) @name = name @annotated = nil @loaded = false end def annotated? @annotated ||= (@base.lib.object_type(self.name) == 'tag') end def message check_tag() return @message end def tag? true end def tagger check_tag() return @tagger end private def check_tag return if @loaded if !self.annotated? @message = @tagger = nil else tdata = @base.lib.tag_data(@name) @message = tdata['message'].chomp @tagger = Git::Author.new(tdata['tagger']) end @loaded = true end end # if we're calling this, we don't know what type it is yet # so this is our little factory method def self.new(base, objectish, type = nil, is_tag = false) if is_tag sha = base.lib.tag_sha(objectish) if sha == '' raise Git::GitTagNameDoesNotExist.new(objectish) end return Git::Object::Tag.new(base, sha, objectish) end type ||= base.lib.object_type(objectish) klass = case type when /blob/ then Blob when /commit/ then Commit when /tree/ then Tree end klass.new(base, objectish) end end end ruby-git-1.6.0/lib/git/lib.rb0000644000175000017500000007055413615571573016146 0ustar terceiroterceirorequire 'rchardet' require 'tempfile' module Git class GitExecuteError < StandardError end class Lib @@semaphore = Mutex.new def initialize(base = nil, logger = nil) @git_dir = nil @git_index_file = nil @git_work_dir = nil @path = nil if base.is_a?(Git::Base) @git_dir = base.repo.path @git_index_file = base.index.path if base.index @git_work_dir = base.dir.path if base.dir elsif base.is_a?(Hash) @git_dir = base[:repository] @git_index_file = base[:index] @git_work_dir = base[:working_directory] end @logger = logger end # creates or reinitializes the repository # # options: # :bare # :working_directory # def init(opts={}) arr_opts = [] arr_opts << '--bare' if opts[:bare] command('init', arr_opts, false) end # tries to clone the given repo # # returns {:repository} (if bare) # {:working_directory} otherwise # # accepts options: # :bare:: no working directory # :branch:: name of branch to track (rather than 'master') # :depth:: the number of commits back to pull # :origin:: name of remote (same as remote) # :path:: directory where the repo will be cloned # :remote:: name of remote (rather than 'origin') # :recursive:: after the clone is created, initialize all submodules within, using their default settings. # # TODO - make this work with SSH password or auth_key # def clone(repository, name, opts = {}) @path = opts[:path] || '.' clone_dir = opts[:path] ? File.join(@path, name) : name arr_opts = [] arr_opts << '--bare' if opts[:bare] arr_opts << '--branch' << opts[:branch] if opts[:branch] arr_opts << '--depth' << opts[:depth].to_i if opts[:depth] && opts[:depth].to_i > 0 arr_opts << '--config' << opts[:config] if opts[:config] arr_opts << '--origin' << opts[:remote] || opts[:origin] if opts[:remote] || opts[:origin] arr_opts << '--recursive' if opts[:recursive] arr_opts << "--mirror" if opts[:mirror] arr_opts << '--' arr_opts << repository arr_opts << clone_dir command('clone', arr_opts) (opts[:bare] or opts[:mirror]) ? {:repository => clone_dir} : {:working_directory => clone_dir} end ## READ COMMANDS ## # # Returns most recent tag that is reachable from a commit # # accepts options: # :all # :tags # :contains # :debug # :exact_match # :dirty # :abbrev # :candidates # :long # :always # :math # # @param [String|NilClass] committish target commit sha or object name # @param [{Symbol=>Object}] opts the given options # @return [String] the tag name # def describe(committish=nil, opts={}) arr_opts = [] arr_opts << '--all' if opts[:all] arr_opts << '--tags' if opts[:tags] arr_opts << '--contains' if opts[:contains] arr_opts << '--debug' if opts[:debug] arr_opts << '--long' if opts[:long] arr_opts << '--always' if opts[:always] arr_opts << '--exact-match' if opts[:exact_match] || opts[:"exact-match"] arr_opts << '--dirty' if opts['dirty'] == true arr_opts << "--dirty=#{opts['dirty']}" if opts['dirty'].is_a?(String) arr_opts << "--abbrev=#{opts['abbrev']}" if opts[:abbrev] arr_opts << "--candidates=#{opts['candidates']}" if opts[:candidates] arr_opts << "--match=#{opts['match']}" if opts[:match] arr_opts << committish if committish return command('describe', arr_opts) end def log_commits(opts={}) arr_opts = log_common_options(opts) arr_opts << '--pretty=oneline' arr_opts += log_path_options(opts) command_lines('log', arr_opts, true).map { |l| l.split.first } end def full_log_commits(opts={}) arr_opts = log_common_options(opts) arr_opts << '--pretty=raw' arr_opts << "--skip=#{opts[:skip]}" if opts[:skip] arr_opts += log_path_options(opts) full_log = command_lines('log', arr_opts, true) process_commit_log_data(full_log) end def revparse(string) return string if string =~ /^[A-Fa-f0-9]{40}$/ # passing in a sha - just no-op it rev = ['head', 'remotes', 'tags'].map do |d| File.join(@git_dir, 'refs', d, string) end.find do |path| File.file?(path) end return File.read(rev).chomp if rev command('rev-parse', string) end def namerev(string) command('name-rev', string).split[1] end def object_type(sha) command('cat-file', ['-t', sha]) end def object_size(sha) command('cat-file', ['-s', sha]).to_i end # returns useful array of raw commit object data def commit_data(sha) sha = sha.to_s cdata = command_lines('cat-file', ['commit', sha]) process_commit_data(cdata, sha, 0) end def process_commit_data(data, sha = nil, indent = 4) hsh = { 'sha' => sha, 'message' => '', 'parent' => [] } loop do key, *value = data.shift.split break if key.nil? if key == 'parent' hsh['parent'] << value.join(' ') else hsh[key] = value.join(' ') end end hsh['message'] = data.collect {|line| line[indent..-1]}.join("\n") + "\n" return hsh end def tag_data(name) sha = sha.to_s tdata = command_lines('cat-file', ['tag', name]) process_tag_data(tdata, name, 0) end def process_tag_data(data, name, indent=4) hsh = { 'name' => name, 'message' => '' } loop do key, *value = data.shift.split break if key.nil? hsh[key] = value.join(' ') end hsh['message'] = data.collect {|line| line[indent..-1]}.join("\n") + "\n" return hsh end def process_commit_log_data(data) in_message = false hsh_array = [] hsh = nil data.each do |line| line = line.chomp if line[0].nil? in_message = !in_message next end if in_message hsh['message'] << "#{line[4..-1]}\n" next end key, *value = line.split value = value.join(' ') case key when 'commit' hsh_array << hsh if hsh hsh = {'sha' => value, 'message' => '', 'parent' => []} when 'parent' hsh['parent'] << value else hsh[key] = value end end hsh_array << hsh if hsh return hsh_array end def object_contents(sha, &block) command('cat-file', ['-p', sha], &block) end def ls_tree(sha) data = {'blob' => {}, 'tree' => {}} command_lines('ls-tree', sha).each do |line| (info, filenm) = line.split("\t") (mode, type, sha) = info.split data[type][filenm] = {:mode => mode, :sha => sha} end data end def mv(file1, file2) command_lines('mv', ['--', file1, file2]) end def full_tree(sha) command_lines('ls-tree', ['-r', sha]) end def tree_depth(sha) full_tree(sha).size end def change_head_branch(branch_name) command('symbolic-ref', ['HEAD', "refs/heads/#{branch_name}"]) end def branches_all arr = [] command_lines('branch', '-a').each do |b| current = (b[0, 2] == '* ') arr << [b.gsub('* ', '').strip, current] end arr end def list_files(ref_dir) dir = File.join(@git_dir, 'refs', ref_dir) files = [] Dir.chdir(dir) { files = Dir.glob('**/*').select { |f| File.file?(f) } } rescue nil files end def branch_current branches_all.select { |b| b[1] }.first[0] rescue nil end def branch_contains(commit, branch_name="") command("branch", [branch_name, "--contains", commit]) end # returns hash # [tree-ish] = [[line_no, match], [line_no, match2]] # [tree-ish] = [[line_no, match], [line_no, match2]] def grep(string, opts = {}) opts[:object] ||= 'HEAD' grep_opts = ['-n'] grep_opts << '-i' if opts[:ignore_case] grep_opts << '-v' if opts[:invert_match] grep_opts << '-e' grep_opts << string grep_opts << opts[:object] if opts[:object].is_a?(String) grep_opts << '--' << opts[:path_limiter] if opts[:path_limiter].is_a? String hsh = {} command_lines('grep', grep_opts).each do |line| if m = /(.*)\:(\d+)\:(.*)/.match(line) hsh[m[1]] ||= [] hsh[m[1]] << [m[2].to_i, m[3]] end end hsh end def diff_full(obj1 = 'HEAD', obj2 = nil, opts = {}) diff_opts = ['-p'] diff_opts << obj1 diff_opts << obj2 if obj2.is_a?(String) diff_opts << '--' << opts[:path_limiter] if opts[:path_limiter].is_a? String command('diff', diff_opts) end def diff_stats(obj1 = 'HEAD', obj2 = nil, opts = {}) diff_opts = ['--numstat'] diff_opts << obj1 diff_opts << obj2 if obj2.is_a?(String) diff_opts << '--' << opts[:path_limiter] if opts[:path_limiter].is_a? String hsh = {:total => {:insertions => 0, :deletions => 0, :lines => 0, :files => 0}, :files => {}} command_lines('diff', diff_opts).each do |file| (insertions, deletions, filename) = file.split("\t") hsh[:total][:insertions] += insertions.to_i hsh[:total][:deletions] += deletions.to_i hsh[:total][:lines] = (hsh[:total][:deletions] + hsh[:total][:insertions]) hsh[:total][:files] += 1 hsh[:files][filename] = {:insertions => insertions.to_i, :deletions => deletions.to_i} end hsh end def diff_name_status(reference1 = nil, reference2 = nil, opts = {}) opts_arr = ['--name-status'] opts_arr << reference1 if reference1 opts_arr << reference2 if reference2 opts_arr << '--' << opts[:path] if opts[:path] command_lines('diff', opts_arr).inject({}) do |memo, line| status, path = line.split("\t") memo[path] = status memo end end # compares the index and the working directory def diff_files diff_as_hash('diff-files') end # compares the index and the repository def diff_index(treeish) diff_as_hash('diff-index', treeish) end def ls_files(location=nil) location ||= '.' hsh = {} command_lines('ls-files', ['--stage', location]).each do |line| (info, file) = line.split("\t") (mode, sha, stage) = info.split file = eval(file) if file =~ /^\".*\"$/ # This takes care of quoted strings returned from git hsh[file] = {:path => file, :mode_index => mode, :sha_index => sha, :stage => stage} end hsh end def ls_remote(location=nil) location ||= '.' Hash.new{ |h,k| h[k] = {} }.tap do |hsh| command_lines('ls-remote', [location], false).each do |line| (sha, info) = line.split("\t") (ref, type, name) = info.split('/', 3) type ||= 'head' type = 'branches' if type == 'heads' value = {:ref => ref, :sha => sha} hsh[type].update( name.nil? ? value : { name => value }) end end end def ignored_files command_lines('ls-files', ['--others', '-i', '--exclude-standard']) end def config_remote(name) hsh = {} config_list.each do |key, value| if /remote.#{name}/.match(key) hsh[key.gsub("remote.#{name}.", '')] = value end end hsh end def config_get(name) do_get = lambda do |path| command('config', ['--get', name]) end if @git_dir Dir.chdir(@git_dir, &do_get) else do_get.call end end def global_config_get(name) command('config', ['--global', '--get', name], false) end def config_list build_list = lambda do |path| parse_config_list command_lines('config', ['--list']) end if @git_dir Dir.chdir(@git_dir, &build_list) else build_list.call end end def global_config_list parse_config_list command_lines('config', ['--global', '--list'], false) end def parse_config_list(lines) hsh = {} lines.each do |line| (key, *values) = line.split('=') hsh[key] = values.join('=') end hsh end def parse_config(file) parse_config_list command_lines('config', ['--list', '--file', file], false) end # Shows objects # # @param [String|NilClass] objectish the target object reference (nil == HEAD) # @param [String|NilClass] path the path of the file to be shown # @return [String] the object information def show(objectish=nil, path=nil) arr_opts = [] arr_opts << (path ? "#{objectish}:#{path}" : objectish) command('show', arr_opts.compact) end ## WRITE COMMANDS ## def config_set(name, value) command('config', [name, value]) end def global_config_set(name, value) command('config', ['--global', name, value], false) end # updates the repository index using the working directory content # # lib.add('path/to/file') # lib.add(['path/to/file1','path/to/file2']) # lib.add(:all => true) # # options: # :all => true # :force => true # # @param [String,Array] paths files paths to be added to the repository # @param [Hash] options def add(paths='.',options={}) arr_opts = [] arr_opts << '--all' if options[:all] arr_opts << '--force' if options[:force] arr_opts << '--' arr_opts << paths arr_opts.flatten! command('add', arr_opts) end def remove(path = '.', opts = {}) arr_opts = ['-f'] # overrides the up-to-date check by default arr_opts << ['-r'] if opts[:recursive] arr_opts << ['--cached'] if opts[:cached] arr_opts << '--' if path.is_a?(Array) arr_opts += path else arr_opts << path end command('rm', arr_opts) end def commit(message, opts = {}) arr_opts = [] arr_opts << "--message=#{message}" if message arr_opts << '--amend' << '--no-edit' if opts[:amend] arr_opts << '--all' if opts[:add_all] || opts[:all] arr_opts << '--allow-empty' if opts[:allow_empty] arr_opts << "--author=#{opts[:author]}" if opts[:author] arr_opts << "--date=#{opts[:date]}" if opts[:date].is_a? String command('commit', arr_opts) end def reset(commit, opts = {}) arr_opts = [] arr_opts << '--hard' if opts[:hard] arr_opts << commit if commit command('reset', arr_opts) end def clean(opts = {}) arr_opts = [] arr_opts << '--force' if opts[:force] arr_opts << '-d' if opts[:d] arr_opts << '-x' if opts[:x] command('clean', arr_opts) end def revert(commitish, opts = {}) # Forcing --no-edit as default since it's not an interactive session. opts = {:no_edit => true}.merge(opts) arr_opts = [] arr_opts << '--no-edit' if opts[:no_edit] arr_opts << commitish command('revert', arr_opts) end def apply(patch_file) arr_opts = [] arr_opts << '--' << patch_file if patch_file command('apply', arr_opts) end def apply_mail(patch_file) arr_opts = [] arr_opts << '--' << patch_file if patch_file command('am', arr_opts) end def stashes_all arr = [] filename = File.join(@git_dir, 'logs/refs/stash') if File.exist?(filename) File.open(filename) do |f| f.each_with_index do |line, i| m = line.match(/:(.*)$/) arr << [i, m[1].strip] end end end arr end def stash_save(message) output = command('stash save', ['--', message]) output =~ /HEAD is now at/ end def stash_apply(id = nil) if id command('stash apply', [id]) else command('stash apply') end end def stash_clear command('stash clear') end def stash_list command('stash list') end def branch_new(branch) command('branch', branch) end def branch_delete(branch) command('branch', ['-D', branch]) end def checkout(branch, opts = {}) arr_opts = [] arr_opts << '-b' if opts[:new_branch] || opts[:b] arr_opts << '--force' if opts[:force] || opts[:f] arr_opts << branch command('checkout', arr_opts) end def checkout_file(version, file) arr_opts = [] arr_opts << version arr_opts << file command('checkout', arr_opts) end def merge(branch, message = nil) arr_opts = [] arr_opts << '-m' << message if message arr_opts += [branch] command('merge', arr_opts) end def merge_base(*args) opts = args.last.is_a?(Hash) ? args.pop : {} arg_opts = [] arg_opts << '--octopus' if opts[:octopus] arg_opts << '--independent' if opts[:independent] arg_opts << '--fork-point' if opts[:fork_point] arg_opts << '--all' if opts[:all] arg_opts += args command('merge-base', arg_opts).lines.map(&:strip) end def unmerged unmerged = [] command_lines('diff', ["--cached"]).each do |line| unmerged << $1 if line =~ /^\* Unmerged path (.*)/ end unmerged end def conflicts # :yields: file, your, their self.unmerged.each do |f| your = Tempfile.new("YOUR-#{File.basename(f)}").path command('show', ":2:#{f}", true, "> #{escape your}") their = Tempfile.new("THEIR-#{File.basename(f)}").path command('show', ":3:#{f}", true, "> #{escape their}") yield(f, your, their) end end def remote_add(name, url, opts = {}) arr_opts = ['add'] arr_opts << '-f' if opts[:with_fetch] || opts[:fetch] arr_opts << '-t' << opts[:track] if opts[:track] arr_opts << '--' arr_opts << name arr_opts << url command('remote', arr_opts) end def remote_set_url(name, url) arr_opts = ['set-url'] arr_opts << name arr_opts << url command('remote', arr_opts) end def remote_remove(name) command('remote', ['rm', name]) end def remotes command_lines('remote') end def tags command_lines('tag') end def tag(name, *opts) target = opts[0].instance_of?(String) ? opts[0] : nil opts = opts.last.instance_of?(Hash) ? opts.last : {} if (opts[:a] || opts[:annotate]) && !(opts[:m] || opts[:message]) raise "Can not create an [:a|:annotate] tag without the precense of [:m|:message]." end arr_opts = [] arr_opts << '-f' if opts[:force] || opts[:f] arr_opts << '-a' if opts[:a] || opts[:annotate] arr_opts << '-s' if opts[:s] || opts[:sign] arr_opts << '-d' if opts[:d] || opts[:delete] arr_opts << name arr_opts << target if target if opts[:m] || opts[:message] arr_opts << '-m' << (opts[:m] || opts[:message]) end command('tag', arr_opts) end def fetch(remote, opts) arr_opts = [remote] arr_opts << opts[:ref] if opts[:ref] arr_opts << '--tags' if opts[:t] || opts[:tags] arr_opts << '--prune' if opts[:p] || opts[:prune] arr_opts << '--unshallow' if opts[:unshallow] command('fetch', arr_opts) end def push(remote, branch = 'master', opts = {}) # Small hack to keep backwards compatibility with the 'push(remote, branch, tags)' method signature. opts = {:tags => opts} if [true, false].include?(opts) arr_opts = [] arr_opts << '--mirror' if opts[:mirror] arr_opts << '--delete' if opts[:delete] arr_opts << '--force' if opts[:force] || opts[:f] arr_opts << remote if opts[:mirror] command('push', arr_opts) else command('push', arr_opts + [branch]) command('push', ['--tags'] + arr_opts) if opts[:tags] end end def pull(remote='origin', branch='master') command('pull', [remote, branch]) end def tag_sha(tag_name) head = File.join(@git_dir, 'refs', 'tags', tag_name) return File.read(head).chomp if File.exist?(head) command('show-ref', ['--tags', '-s', tag_name]) end def repack command('repack', ['-a', '-d']) end def gc command('gc', ['--prune', '--aggressive', '--auto']) end # reads a tree into the current index file def read_tree(treeish, opts = {}) arr_opts = [] arr_opts << "--prefix=#{opts[:prefix]}" if opts[:prefix] arr_opts += [treeish] command('read-tree', arr_opts) end def write_tree command('write-tree') end def commit_tree(tree, opts = {}) opts[:message] ||= "commit tree #{tree}" t = Tempfile.new('commit-message') t.write(opts[:message]) t.close arr_opts = [] arr_opts << tree arr_opts << '-p' << opts[:parent] if opts[:parent] arr_opts += [opts[:parents]].map { |p| ['-p', p] }.flatten if opts[:parents] command('commit-tree', arr_opts, true, "< #{escape t.path}") end def update_ref(branch, commit) command('update-ref', [branch, commit]) end def checkout_index(opts = {}) arr_opts = [] arr_opts << "--prefix=#{opts[:prefix]}" if opts[:prefix] arr_opts << "--force" if opts[:force] arr_opts << "--all" if opts[:all] arr_opts << '--' << opts[:path_limiter] if opts[:path_limiter].is_a? String command('checkout-index', arr_opts) end # creates an archive file # # options # :format (zip, tar) # :prefix # :remote # :path def archive(sha, file = nil, opts = {}) opts[:format] ||= 'zip' if opts[:format] == 'tgz' opts[:format] = 'tar' opts[:add_gzip] = true end if !file tempfile = Tempfile.new('archive') file = tempfile.path # delete it now, before we write to it, so that Ruby doesn't delete it # when it finalizes the Tempfile. tempfile.close! end arr_opts = [] arr_opts << "--format=#{opts[:format]}" if opts[:format] arr_opts << "--prefix=#{opts[:prefix]}" if opts[:prefix] arr_opts << "--remote=#{opts[:remote]}" if opts[:remote] arr_opts << sha arr_opts << '--' << opts[:path] if opts[:path] command('archive', arr_opts, true, (opts[:add_gzip] ? '| gzip' : '') + " > #{escape file}") return file end # returns the current version of git, as an Array of Fixnums. def current_command_version output = command('version', [], false) version = output[/\d+\.\d+(\.\d+)+/] version.split('.').collect {|i| i.to_i} end def required_command_version [1, 6] end def meets_required_version? (self.current_command_version <=> self.required_command_version) >= 0 end private # Systen ENV variables involved in the git commands. # # @return [] the names of the EVN variables involved in the git commands ENV_VARIABLE_NAMES = ['GIT_DIR', 'GIT_WORK_TREE', 'GIT_INDEX_FILE', 'GIT_SSH'] def command_lines(cmd, opts = [], chdir = true, redirect = '') command(cmd, opts, chdir).lines.map(&:chomp) end # Takes the current git's system ENV variables and store them. def store_git_system_env_variables @git_system_env_variables = {} ENV_VARIABLE_NAMES.each do |env_variable_name| @git_system_env_variables[env_variable_name] = ENV[env_variable_name] end end # Takes the previously stored git's ENV variables and set them again on ENV. def restore_git_system_env_variables ENV_VARIABLE_NAMES.each do |env_variable_name| ENV[env_variable_name] = @git_system_env_variables[env_variable_name] end end # Sets git's ENV variables to the custom values for the current instance. def set_custom_git_env_variables ENV['GIT_DIR'] = @git_dir ENV['GIT_WORK_TREE'] = @git_work_dir ENV['GIT_INDEX_FILE'] = @git_index_file ENV['GIT_SSH'] = Git::Base.config.git_ssh end # Runs a block inside an environment with customized ENV variables. # It restores the ENV after execution. # # @param [Proc] block block to be executed within the customized environment def with_custom_env_variables(&block) @@semaphore.synchronize do store_git_system_env_variables() set_custom_git_env_variables() return block.call() end ensure restore_git_system_env_variables() end def command(cmd, opts = [], chdir = true, redirect = '', &block) global_opts = [] global_opts << "--git-dir=#{@git_dir}" if !@git_dir.nil? global_opts << "--work-tree=#{@git_work_dir}" if !@git_work_dir.nil? opts = [opts].flatten.map {|s| escape(s) }.join(' ') global_opts = global_opts.flatten.map {|s| escape(s) }.join(' ') git_cmd = "#{Git::Base.config.binary_path} #{global_opts} #{cmd} #{opts} #{redirect} 2>&1" output = nil command_thread = nil; exitstatus = nil with_custom_env_variables do command_thread = Thread.new do output = run_command(git_cmd, &block) exitstatus = $?.exitstatus end command_thread.join end if @logger @logger.info(git_cmd) @logger.debug(output) end if exitstatus > 1 || (exitstatus == 1 && output != '') raise Git::GitExecuteError.new(git_cmd + ':' + output.to_s) end return output end # Takes the diff command line output (as Array) and parse it into a Hash # # @param [String] diff_command the diff commadn to be used # @param [Array] opts the diff options to be used # @return [Hash] the diff as Hash def diff_as_hash(diff_command, opts=[]) command_lines(diff_command, opts).inject({}) do |memo, line| info, file = line.split("\t") mode_src, mode_dest, sha_src, sha_dest, type = info.split memo[file] = { :mode_index => mode_dest, :mode_repo => mode_src.to_s[1, 7], :path => file, :sha_repo => sha_src, :sha_index => sha_dest, :type => type } memo end end # Returns an array holding the common options for the log commands # # @param [Hash] opts the given options # @return [Array] the set of common options that the log command will use def log_common_options(opts) arr_opts = [] arr_opts << "-#{opts[:count]}" if opts[:count] arr_opts << "--no-color" arr_opts << "--since=#{opts[:since]}" if opts[:since].is_a? String arr_opts << "--until=#{opts[:until]}" if opts[:until].is_a? String arr_opts << "--grep=#{opts[:grep]}" if opts[:grep].is_a? String arr_opts << "--author=#{opts[:author]}" if opts[:author].is_a? String arr_opts << "#{opts[:between][0].to_s}..#{opts[:between][1].to_s}" if (opts[:between] && opts[:between].size == 2) arr_opts end # Retrurns an array holding path options for the log commands # # @param [Hash] opts the given options # @return [Array] the set of path options that the log command will use def log_path_options(opts) arr_opts = [] arr_opts << opts[:object] if opts[:object].is_a? String arr_opts << '--' << opts[:path_limiter] if opts[:path_limiter] arr_opts end def default_encoding __ENCODING__.name end def best_guess_encoding # Encoding::ASCII_8BIT.name Encoding::UTF_8.name end def detected_encoding(str) CharDet.detect(str)['encoding'] || best_guess_encoding end def encoding_options { invalid: :replace, undef: :replace } end def normalize_encoding(str) return str if str.valid_encoding? && str.encoding == default_encoding return str.encode(default_encoding, str.encoding, encoding_options) if str.valid_encoding? str.encode(default_encoding, detected_encoding(str), encoding_options) end def run_command(git_cmd, &block) return IO.popen(git_cmd, &block) if block_given? `#{git_cmd}`.chomp.lines.map { |l| normalize_encoding(l) }.join end def escape(s) return "'#{s && s.to_s.gsub('\'','\'"\'"\'')}'" if RUBY_PLATFORM !~ /mingw|mswin/ # Keeping the old escape format for windows users escaped = s.to_s.gsub('\'', '\'\\\'\'') return %Q{"#{escaped}"} end end end ruby-git-1.6.0/lib/git/status.rb0000644000175000017500000001125513615571573016714 0ustar terceiroterceiromodule Git # # A class for git status # class Status include Enumerable def initialize(base) @base = base construct_status end # # Returns an Enumerable containing files that have changed from the # git base directory # # @return [Enumerable] def changed @files.select { |_k, f| f.type == 'M' } end # # Determines whether the given file has been changed. # File path starts at git base directory # # @param file [String] The name of the file. # @example Check if lib/git.rb has changed. # changed?('lib/git.rb') # @return [Boolean] def changed?(file) changed.member?(file) end # # Returns an Enumerable containing files that have been added. # File path starts at git base directory # # @return [Enumerable] def added @files.select { |_k, f| f.type == 'A' } end # # Determines whether the given file has been added to the repository # File path starts at git base directory # # @param file [String] The name of the file. # @example Check if lib/git.rb is added. # added?('lib/git.rb') # @return [Boolean] def added?(file) added.member?(file) end # # Returns an Enumerable containing files that have been deleted. # File path starts at git base directory # # @return [Enumerable] def deleted @files.select { |_k, f| f.type == 'D' } end # # Determines whether the given file has been deleted from the repository # File path starts at git base directory # # @param file [String] The name of the file. # @example Check if lib/git.rb is deleted. # deleted?('lib/git.rb') # @return [Boolean] def deleted?(file) deleted.member?(file) end # # Returns an Enumerable containing files that are not tracked in git. # File path starts at git base directory # # @return [Enumerable] def untracked @files.select { |_k, f| f.untracked } end # # Determines whether the given file has is tracked by git. # File path starts at git base directory # # @param file [String] The name of the file. # @example Check if lib/git.rb is an untracked file. # untracked?('lib/git.rb') # @return [Boolean] def untracked?(file) untracked.member?(file) end def pretty out = '' each do |file| out << pretty_file(file) end out << "\n" out end def pretty_file(file) <<-FILE.strip_heredoc #{file.path} \tsha(r) #{file.sha_repo} #{file.mode_repo} \tsha(i) #{file.sha_index} #{file.mode_index} \ttype #{file.type} \tstage #{file.stage} \tuntrac #{file.untracked} FILE end # enumerable method def [](file) @files[file] end def each(&block) @files.values.each(&block) end # subclass that does heavy lifting class StatusFile attr_accessor :path, :type, :stage, :untracked attr_accessor :mode_index, :mode_repo attr_accessor :sha_index, :sha_repo def initialize(base, hash) @base = base @path = hash[:path] @type = hash[:type] @stage = hash[:stage] @mode_index = hash[:mode_index] @mode_repo = hash[:mode_repo] @sha_index = hash[:sha_index] @sha_repo = hash[:sha_repo] @untracked = hash[:untracked] end def blob(type = :index) if type == :repo @base.object(@sha_repo) else begin @base.object(@sha_index) rescue @base.object(@sha_repo) end end end end private def construct_status @files = @base.lib.ls_files fetch_untracked fetch_modified fetch_added @files.each do |k, file_hash| @files[k] = StatusFile.new(@base, file_hash) end end def fetch_untracked ignore = @base.lib.ignored_files Dir.chdir(@base.dir.path) do Dir.glob('**/*', File::FNM_DOTMATCH) do |file| next if @files[file] || File.directory?(file) || ignore.include?(file) || file =~ %r{^.git\/.+} @files[file] = { path: file, untracked: true } end end end def fetch_modified # find modified in tree @base.lib.diff_files.each do |path, data| @files[path] ? @files[path].merge!(data) : @files[path] = data end end def fetch_added # find added but not committed - new files @base.lib.diff_index('HEAD').each do |path, data| @files[path] ? @files[path].merge!(data) : @files[path] = data end end end end ruby-git-1.6.0/lib/git/base/0000755000175000017500000000000013615571573015752 5ustar terceiroterceiroruby-git-1.6.0/lib/git/base/factory.rb0000644000175000017500000000427313615571573017754 0ustar terceiroterceiromodule Git class Base module Factory # returns a Git::Branch object for branch_name def branch(branch_name = 'master') Git::Branch.new(self, branch_name) end # returns a Git::Branches object of all the Git::Branch # objects for this repo def branches Git::Branches.new(self) end def commit_tree(tree = nil, opts = {}) Git::Object::Commit.new(self, self.lib.commit_tree(tree, opts)) end # returns a Git::Diff object def diff(objectish = 'HEAD', obj2 = nil) Git::Diff.new(self, objectish, obj2) end def gblob(objectish) Git::Object.new(self, objectish, 'blob') end def gcommit(objectish) Git::Object.new(self, objectish, 'commit') end def gtree(objectish) Git::Object.new(self, objectish, 'tree') end # returns a Git::Log object with count commits def log(count = 30) Git::Log.new(self, count) end # returns a Git::Object of the appropriate type # you can also call @git.gtree('tree'), but that's # just for readability. If you call @git.gtree('HEAD') it will # still return a Git::Object::Commit object. # # @git.object calls a factory method that will run a rev-parse # on the objectish and determine the type of the object and return # an appropriate object for that type def object(objectish) Git::Object.new(self, objectish) end # returns a Git::Remote object def remote(remote_name = 'origin') Git::Remote.new(self, remote_name) end # returns a Git::Status object def status Git::Status.new(self) end # returns a Git::Tag object def tag(tag_name) Git::Object.new(self, tag_name, 'tag', true) end # Find as good common ancestors as possible for a merge # example: g.merge_base('master', 'some_branch', 'some_sha', octopus: true) # returns Array def merge_base(*args) shas = self.lib.merge_base(*args) shas.map { |sha| gcommit(sha) } end end end end ruby-git-1.6.0/lib/git/stashes.rb0000644000175000017500000000207313615571573017041 0ustar terceiroterceiromodule Git # object that holds all the available stashes class Stashes include Enumerable def initialize(base) @stashes = [] @base = base @base.lib.stashes_all.each do |id, message| @stashes.unshift(Git::Stash.new(@base, message, true)) end end # # Returns an multi-dimensional Array of elements that have been stash saved. # Array is based on position and name. See Example # # @example Returns Array of items that have been stashed # .all - [0, "testing-stash-all"]] # @return [Array] def all @base.lib.stashes_all end def save(message) s = Git::Stash.new(@base, message) @stashes.unshift(s) if s.saved? end def apply(index=nil) @base.lib.stash_apply(index) end def clear @base.lib.stash_clear @stashes = [] end def size @stashes.size end def each(&block) @stashes.each(&block) end def [](index) @stashes[index.to_i] end end end ruby-git-1.6.0/lib/git/index.rb0000644000175000017500000000006413615571573016474 0ustar terceiroterceiromodule Git class Index < Git::Path end end ruby-git-1.6.0/lib/git/base.rb0000644000175000017500000003555013615571573016307 0ustar terceiroterceirorequire 'git/base/factory' module Git class Base include Git::Base::Factory # opens a bare Git Repository - no working directory options def self.bare(git_dir, opts = {}) self.new({:repository => git_dir}.merge(opts)) end # clones a git repository locally # # repository - http://repo.or.cz/w/sinatra.git # name - sinatra # # options: # :repository # # :bare # or # :working_directory # :index_file # def self.clone(repository, name, opts = {}) # run git-clone self.new(Git::Lib.new.clone(repository, name, opts)) end # Returns (and initialize if needed) a Git::Config instance # # @return [Git::Config] the current config instance. def self.config return @@config ||= Config.new end # initializes a git repository # # options: # :bare # :index # :repository # def self.init(working_dir, opts = {}) opts[:working_directory] ||= working_dir opts[:repository] ||= File.join(opts[:working_directory], '.git') FileUtils.mkdir_p(opts[:working_directory]) if opts[:working_directory] && !File.directory?(opts[:working_directory]) init_opts = { :bare => opts[:bare] } opts.delete(:working_directory) if opts[:bare] # Submodules have a .git *file* not a .git folder. # This file's contents point to the location of # where the git refs are held (In the parent repo) if File.file?('.git') git_file = File.open('.git').read[8..-1].strip opts[:repository] = git_file opts[:index] = git_file + '/index' end Git::Lib.new(opts).init(init_opts) self.new(opts) end # opens a new Git Project from a working directory # you can specify non-standard git_dir and index file in the options def self.open(working_dir, opts={}) self.new({:working_directory => working_dir}.merge(opts)) end def initialize(options = {}) if working_dir = options[:working_directory] options[:repository] ||= File.join(working_dir, '.git') options[:index] ||= File.join(working_dir, '.git', 'index') end if options[:log] @logger = options[:log] @logger.info("Starting Git") else @logger = nil end @working_directory = options[:working_directory] ? Git::WorkingDirectory.new(options[:working_directory]) : nil @repository = options[:repository] ? Git::Repository.new(options[:repository]) : nil @index = options[:index] ? Git::Index.new(options[:index], false) : nil end # changes current working directory for a block # to the git working directory # # example # @git.chdir do # # write files # @git.add # @git.commit('message') # end def chdir # :yields: the Git::Path Dir.chdir(dir.path) do yield dir.path end end #g.config('user.name', 'Scott Chacon') # sets value #g.config('user.email', 'email@email.com') # sets value #g.config('user.name') # returns 'Scott Chacon' #g.config # returns whole config hash def config(name = nil, value = nil) if(name && value) # set value lib.config_set(name, value) elsif (name) # return value lib.config_get(name) else # return hash lib.config_list end end # returns a reference to the working directory # @git.dir.path # @git.dir.writeable? def dir @working_directory end # returns reference to the git index file def index @index end # returns reference to the git repository directory # @git.dir.path def repo @repository end # returns the repository size in bytes def repo_size Dir.chdir(repo.path) do return `du -s`.chomp.split.first.to_i end end def set_index(index_file, check = true) @lib = nil @index = Git::Index.new(index_file.to_s, check) end def set_working(work_dir, check = true) @lib = nil @working_directory = Git::WorkingDirectory.new(work_dir.to_s, check) end # returns +true+ if the branch exists locally def is_local_branch?(branch) branch_names = self.branches.local.map {|b| b.name} branch_names.include?(branch) end # returns +true+ if the branch exists remotely def is_remote_branch?(branch) branch_names = self.branches.remote.map {|b| b.name} branch_names.include?(branch) end # returns +true+ if the branch exists def is_branch?(branch) branch_names = self.branches.map {|b| b.name} branch_names.include?(branch) end # this is a convenience method for accessing the class that wraps all the # 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, @logger) end # will run a grep for 'string' on the HEAD of the git repository # # to be more surgical in your grep, you can call grep() off a specific # git object. for example: # # @git.object("v2.3").grep('TODO') # # in any case, it returns a hash of arrays of the type: # hsh[tree-ish] = [[line_no, match], [line_no, match2]] # hsh[tree-ish] = [[line_no, match], [line_no, match2]] # # so you might use it like this: # # @git.grep("TODO").each do |sha, arr| # puts "in blob #{sha}:" # arr.each do |match| # puts "\t line #{match[0]}: '#{match[1]}'" # end # end def grep(string, path_limiter = nil, opts = {}) self.object('HEAD').grep(string, path_limiter, opts) end # updates the repository index using the working directory content # # @git.add('path/to/file') # @git.add(['path/to/file1','path/to/file2']) # @git.add(:all => true) # # options: # :all => true # # @param [String,Array] paths files paths to be added (optional, default='.') # @param [Hash] options def add(*args) if args[0].instance_of?(String) || args[0].instance_of?(Array) self.lib.add(args[0],args[1]||{}) else self.lib.add('.', args[0]||{}) end end # removes file(s) from the git repository def remove(path = '.', opts = {}) self.lib.remove(path, opts) end # resets the working directory to the provided commitish def reset(commitish = nil, opts = {}) self.lib.reset(commitish, opts) end # resets the working directory to the commitish with '--hard' def reset_hard(commitish = nil, opts = {}) opts = {:hard => true}.merge(opts) self.lib.reset(commitish, opts) end # cleans the working directory # # options: # :force # :d # def clean(opts = {}) self.lib.clean(opts) end # returns the most recent tag that is reachable from a commit # # options: # :all # :tags # :contains # :debug # :exact_match # :dirty # :abbrev # :candidates # :long # :always # :match # def describe(committish=nil, opts={}) self.lib.describe(committish, opts) end # reverts the working directory to the provided commitish. # Accepts a range, such as comittish..HEAD # # options: # :no_edit # def revert(commitish = nil, opts = {}) self.lib.revert(commitish, opts) end # commits all pending changes in the index file to the git repository # # options: # :all # :allow_empty # :amend # :author # def commit(message, opts = {}) self.lib.commit(message, opts) end # commits all pending changes in the index file to the git repository, # but automatically adds all modified files without having to explicitly # calling @git.add() on them. def commit_all(message, opts = {}) opts = {:add_all => true}.merge(opts) self.lib.commit(message, opts) end # checks out a branch as the new git working directory def checkout(branch = 'master', opts = {}) self.lib.checkout(branch, opts) end # checks out an old version of a file def checkout_file(version, file) self.lib.checkout_file(version,file) end # fetches changes from a remote branch - this does not modify the working directory, # it just gets the changes from the remote if there are any def fetch(remote = 'origin', opts={}) self.lib.fetch(remote, opts) end # pushes changes to a remote repository - easiest if this is a cloned repository, # otherwise you may have to run something like this first to setup the push parameters: # # @git.config('remote.remote-name.push', 'refs/heads/master:refs/heads/master') # def push(remote = 'origin', branch = 'master', opts = {}) # Small hack to keep backwards compatibility with the 'push(remote, branch, tags)' method signature. opts = {:tags => opts} if [true, false].include?(opts) self.lib.push(remote, branch, opts) end # merges one or more branches into the current working branch # # you can specify more than one branch to merge by passing an array of branches def merge(branch, message = 'merge') self.lib.merge(branch, message) end # iterates over the files which are unmerged def each_conflict(&block) # :yields: file, your_version, their_version self.lib.conflicts(&block) end # pulls the given branch from the given remote into the current branch # # @git.pull # pulls from origin/master # @git.pull('upstream') # pulls from upstream/master # @git.pull('upstream', 'develope') # pulls from upstream/develop # def pull(remote='origin', branch='master') self.lib.pull(remote, branch) end # returns an array of Git:Remote objects def remotes self.lib.remotes.map { |r| Git::Remote.new(self, r) } end # adds a new remote to this repository # url can be a git url or a Git::Base object if it's a local reference # # @git.add_remote('scotts_git', 'git://repo.or.cz/rubygit.git') # @git.fetch('scotts_git') # @git.merge('scotts_git/master') # # Options: # :fetch => true # :track => def add_remote(name, url, opts = {}) url = url.repo.path if url.is_a?(Git::Base) self.lib.remote_add(name, url, opts) Git::Remote.new(self, name) end # sets the url for a remote # url can be a git url or a Git::Base object if it's a local reference # # @git.set_remote_url('scotts_git', 'git://repo.or.cz/rubygit.git') # def set_remote_url(name, url) url = url.repo.path if url.is_a?(Git::Base) self.lib.remote_set_url(name, url) Git::Remote.new(self, name) end # removes a remote from this repository # # @git.remove_remote('scott_git') def remove_remote(name) self.lib.remote_remove(name) end # returns an array of all Git::Tag objects for this repository def tags self.lib.tags.map { |r| tag(r) } end # Creates a new git tag (Git::Tag) # Usage: # repo.add_tag('tag_name', object_reference) # repo.add_tag('tag_name', object_reference, {:options => 'here'}) # repo.add_tag('tag_name', {:options => 'here'}) # # Options: # :a | :annotate -> true # :d -> true # :f -> true # :m | :message -> String # :s -> true # def add_tag(name, *opts) self.lib.tag(name, *opts) self.tag(name) end # deletes a tag def delete_tag(name) self.lib.tag(name, {:d => true}) end # creates an archive file of the given tree-ish def archive(treeish, file = nil, opts = {}) self.object(treeish).archive(file, opts) end # repacks the repository def repack self.lib.repack end def gc self.lib.gc end def apply(file) if File.exist?(file) self.lib.apply(file) end end def apply_mail(file) self.lib.apply_mail(file) if File.exist?(file) end # Shows objects # # @param [String|NilClass] objectish the target object reference (nil == HEAD) # @param [String|NilClass] path the path of the file to be shown # @return [String] the object information def show(objectish=nil, path=nil) self.lib.show(objectish, path) end ## LOWER LEVEL INDEX OPERATIONS ## def with_index(new_index) # :yields: new_index old_index = @index set_index(new_index, false) return_value = yield @index set_index(old_index) return_value end def with_temp_index &blk # Workaround for JRUBY, since they handle the TempFile path different. # MUST be improved to be safer and OS independent. if RUBY_PLATFORM == 'java' temp_path = "/tmp/temp-index-#{(0...15).map{ ('a'..'z').to_a[rand(26)] }.join}" else tempfile = Tempfile.new('temp-index') temp_path = tempfile.path tempfile.close tempfile.unlink end with_index(temp_path, &blk) end def checkout_index(opts = {}) self.lib.checkout_index(opts) end def read_tree(treeish, opts = {}) self.lib.read_tree(treeish, opts) end def write_tree self.lib.write_tree end def write_and_commit_tree(opts = {}) tree = write_tree commit_tree(tree, opts) end def update_ref(branch, commit) branch(branch).update_ref(commit) end def ls_files(location=nil) self.lib.ls_files(location) end def with_working(work_dir) # :yields: the Git::WorkingDirectory return_value = false old_working = @working_directory set_working(work_dir) Dir.chdir work_dir do return_value = yield @working_directory end set_working(old_working) return_value end def with_temp_working &blk tempfile = Tempfile.new("temp-workdir") temp_dir = tempfile.path tempfile.close tempfile.unlink Dir.mkdir(temp_dir, 0700) with_working(temp_dir, &blk) end # runs git rev-parse to convert the objectish to a full sha # # @git.revparse("HEAD^^") # @git.revparse('v2.4^{tree}') # @git.revparse('v2.4:/doc/index.html') # def revparse(objectish) self.lib.revparse(objectish) end def ls_tree(objectish) self.lib.ls_tree(objectish) end def cat_file(objectish) self.lib.object_contents(objectish) end # returns the name of the branch the working directory is currently on def current_branch self.lib.branch_current end end end ruby-git-1.6.0/lib/git/diff.rb0000644000175000017500000000671313615571573016304 0ustar terceiroterceiromodule Git # object that holds the last X commits on given branch class Diff include Enumerable def initialize(base, from = nil, to = nil) @base = base @from = from && from.to_s @to = to && to.to_s @path = nil @full_diff = nil @full_diff_files = nil @stats = nil end attr_reader :from, :to def name_status cache_name_status end def path(path) @path = path return self end def size cache_stats @stats[:total][:files] end def lines cache_stats @stats[:total][:lines] end def deletions cache_stats @stats[:total][:deletions] end def insertions cache_stats @stats[:total][:insertions] end def stats cache_stats @stats end # if file is provided and is writable, it will write the patch into the file def patch(file = nil) cache_full @full_diff end alias_method :to_s, :patch # enumerable methods def [](key) process_full @full_diff_files.assoc(key)[1] end def each(&block) # :yields: each Git::DiffFile in turn process_full @full_diff_files.map { |file| file[1] }.each(&block) end class DiffFile attr_accessor :patch, :path, :mode, :src, :dst, :type @base = nil def initialize(base, hash) @base = base @patch = hash[:patch] @path = hash[:path] @mode = hash[:mode] @src = hash[:src] @dst = hash[:dst] @type = hash[:type] @binary = hash[:binary] end def binary? !!@binary end def blob(type = :dst) if type == :src @base.object(@src) if @src != '0000000' else @base.object(@dst) if @dst != '0000000' end end end private def cache_full @full_diff ||= @base.lib.diff_full(@from, @to, {:path_limiter => @path}) end def process_full return if @full_diff_files cache_full @full_diff_files = process_full_diff end def cache_stats @stats ||= @base.lib.diff_stats(@from, @to, {:path_limiter => @path}) end def cache_name_status @name_status ||= @base.lib.diff_name_status(@from, @to, {:path => @path}) end # break up @diff_full def process_full_diff defaults = { :mode => '', :src => '', :dst => '', :type => 'modified' } final = {} current_file = nil @full_diff.split("\n").each do |line| if m = /^diff --git a\/(.*?) b\/(.*?)/.match(line) current_file = m[1] final[current_file] = defaults.merge({:patch => line, :path => current_file}) else if m = /^index (.......)\.\.(.......)( ......)*/.match(line) final[current_file][:src] = m[1] final[current_file][:dst] = m[2] final[current_file][:mode] = m[3].strip if m[3] end if m = /^([[:alpha:]]*?) file mode (......)/.match(line) final[current_file][:type] = m[1] final[current_file][:mode] = m[2] end if m = /^Binary files /.match(line) final[current_file][:binary] = true end final[current_file][:patch] << "\n" + line end end final.map { |e| [e[0], DiffFile.new(@base, e[1])] } end end end ruby-git-1.6.0/lib/git/config.rb0000644000175000017500000000050413615571573016631 0ustar terceiroterceiromodule Git class Config attr_writer :binary_path, :git_ssh def initialize @binary_path = nil @git_ssh = nil end def binary_path @binary_path || ENV['GIT_PATH'] && File.join(ENV['GIT_PATH'], 'git') || 'git' end def git_ssh @git_ssh || ENV['GIT_SSH'] end end end ruby-git-1.6.0/lib/git/remote.rb0000644000175000017500000000124513615571573016662 0ustar terceiroterceiromodule Git class Remote < Path attr_accessor :name, :url, :fetch_opts def initialize(base, name) @base = base config = @base.lib.config_remote(name) @name = name @url = config['url'] @fetch_opts = config['fetch'] end def fetch(opts={}) @base.fetch(@name, opts) end # merge this remote locally def merge(branch = 'master') @base.merge("#{@name}/#{branch}") end def branch(branch = 'master') Git::Branch.new(@base, "#{@name}/#{branch}") end def remove @base.lib.remote_remove(@name) end def to_s @name end end end ruby-git-1.6.0/lib/git/branch.rb0000644000175000017500000000544213615571573016627 0ustar terceiroterceirorequire 'git/path' module Git class Branch < Path attr_accessor :full, :remote, :name def initialize(base, name) @full = name @base = base @gcommit = nil @stashes = nil @remote, @name = parse_name(name) end def gcommit @gcommit ||= @base.gcommit(@full) @gcommit end def stashes @stashes ||= Git::Stashes.new(@base) end def checkout check_if_create @base.checkout(@full) end def archive(file, opts = {}) @base.lib.archive(@full, file, opts) end # g.branch('new_branch').in_branch do # # create new file # # do other stuff # return true # auto commits and switches back # end def in_branch(message = 'in branch work') old_current = @base.lib.branch_current checkout if yield @base.commit_all(message) else @base.reset_hard end @base.checkout(old_current) end def create check_if_create end def delete @base.lib.branch_delete(@name) end def current determine_current end def contains?(commit) !@base.lib.branch_contains(commit, self.name).empty? end def merge(branch = nil, message = nil) if branch in_branch do @base.merge(branch, message) false end # merge a branch into this one else # merge this branch into the current one @base.merge(@name) end end def update_ref(commit) @base.lib.update_ref(@full, commit) end def to_a [@full] end def to_s @full end private def check_if_create @base.lib.branch_new(@name) rescue nil end def determine_current @base.lib.branch_current == @name end # Given a full branch name return an Array containing the remote and branch names. # # Removes 'remotes' from the beggining of the name (if present). # Takes the second part (splittign by '/') as the remote name. # Takes the rest as the repo name (can also hold one or more '/'). # # Example: # parse_name('master') #=> [nil, 'master'] # parse_name('origin/master') #=> ['origin', 'master'] # parse_name('remotes/origin/master') #=> ['origin', 'master'] # parse_name('origin/master/v2') #=> ['origin', 'master/v2'] # # param [String] name branch full name. # return [] an Array containing the remote and branch names. def parse_name(name) if name.match(/^(?:remotes)?\/([^\/]+)\/(.+)/) return [Git::Remote.new(@base, $1), $2] end return [nil, name] end end end ruby-git-1.6.0/lib/git/author.rb0000644000175000017500000000042413615571573016667 0ustar terceiroterceiromodule Git class Author attr_accessor :name, :email, :date def initialize(author_string) if m = /(.*?) <(.*?)> (\d+) (.*)/.match(author_string) @name = m[1] @email = m[2] @date = Time.at(m[3].to_i) end end end end ruby-git-1.6.0/lib/git/log.rb0000644000175000017500000000436513615571573016156 0ustar terceiroterceiromodule Git # object that holds the last X commits on given branch class Log include Enumerable def initialize(base, count = 30) dirty_log @base = base @count = count @commits = nil @author = nil @grep = nil @object = nil @path = nil @since = nil @skip = nil @until = nil @between = nil end def object(objectish) dirty_log @object = objectish return self end def author(regex) dirty_log @author = regex return self end def grep(regex) dirty_log @grep = regex return self end def path(path) dirty_log @path = path return self end def skip(num) dirty_log @skip = num return self end def since(date) dirty_log @since = date return self end def until(date) dirty_log @until = date return self end def between(sha1, sha2 = nil) dirty_log @between = [sha1, sha2] return self end def to_s self.map { |c| c.to_s }.join("\n") end # forces git log to run def size check_log @commits.size rescue nil end def each(&block) check_log @commits.each(&block) end def first check_log @commits.first rescue nil end def last check_log @commits.last rescue nil end def [](index) check_log @commits[index] rescue nil end private def dirty_log @dirty_flag = true end def check_log if @dirty_flag run_log @dirty_flag = false end end # actually run the 'git log' command def run_log log = @base.lib.full_log_commits(:count => @count, :object => @object, :path_limiter => @path, :since => @since, :author => @author, :grep => @grep, :skip => @skip, :until => @until, :between => @between) @commits = log.map { |c| Git::Object::Commit.new(@base, c['sha'], c) } end end end ruby-git-1.6.0/lib/git.rb0000644000175000017500000001173013615571573015367 0ustar terceiroterceiro# Add the directory containing this file to the start of the load path if it # isn't there already. $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__))) require 'git/author' require 'git/base' require 'git/branch' require 'git/branches' require 'git/config' require 'git/diff' require 'git/index' require 'git/lib' require 'git/log' require 'git/object' require 'git/path' require 'git/remote' require 'git/repository' require 'git/status' require 'git/stash' require 'git/stashes' require 'git/version' require 'git/working_directory' lib = Git::Lib.new(nil, nil) unless lib.meets_required_version? $stderr.puts "[WARNING] The git gem requires git #{lib.required_command_version.join('.')} or later, but only found #{lib.current_command_version.join('.')}. You should probably upgrade." end # Git/Ruby Library # # This provides bindings for working with git in complex # interactions, including branching and merging, object # inspection and manipulation, history, patch generation # and more. You should be able to do most fundamental git # operations with this library. # # This module provides the basic functions to open a git # reference to work with. You can open a working directory, # open a bare repository, initialize a new repo or clone an # existing remote repository. # # Author:: Scott Chacon (mailto:schacon@gmail.com) # License:: MIT License module Git #g.config('user.name', 'Scott Chacon') # sets value #g.config('user.email', 'email@email.com') # sets value #g.config('user.name') # returns 'Scott Chacon' #g.config # returns whole config hash def config(name = nil, value = nil) lib = Git::Lib.new if(name && value) # set value lib.config_set(name, value) elsif (name) # return value lib.config_get(name) else # return hash lib.config_list end end def self.configure yield Base.config end def self.config return Base.config end def global_config(name = nil, value = nil) self.class.global_config(name, value) end # open a bare repository # # this takes the path to a bare git repo # 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, options = {}) Base.bare(git_dir, options) end # clones a remote repository # # options # :bare => true (does a bare clone) # :repository => '/path/to/alt_git_dir' # :index => '/path/to/alt_index_file' # # example # Git.clone('git://repo.or.cz/rubygit.git', 'clone.git', :bare => true) # def self.clone(repository, name, options = {}) Base.clone(repository, name, options) end # Export the current HEAD (or a branch, if options[:branch] # is specified) into the +name+ directory, then remove all traces of git from the # directory. # # See +clone+ for options. Does not obey the :remote option, # since the .git info will be deleted anyway; always uses the default # remote, 'origin.' def self.export(repository, name, options = {}) options.delete(:remote) repo = clone(repository, name, {:depth => 1}.merge(options)) repo.checkout("origin/#{options[:branch]}") if options[:branch] Dir.chdir(repo.dir.to_s) { FileUtils.rm_r '.git' } end # Same as g.config, but forces it to be at the global level # #g.config('user.name', 'Scott Chacon') # sets value #g.config('user.email', 'email@email.com') # sets value #g.config('user.name') # returns 'Scott Chacon' #g.config # returns whole config hash def self.global_config(name = nil, value = nil) lib = Git::Lib.new(nil, nil) if(name && value) # set value lib.global_config_set(name, value) elsif (name) # return value lib.global_config_get(name) else # return hash lib.global_config_list end end # initialize a new git repository, defaults to the current working directory # # options # :repository => '/path/to/alt_git_dir' # :index => '/path/to/alt_index_file' def self.init(working_dir = '.', options = {}) Base.init(working_dir, options) end # returns a Hash containing information about the references # of the target repository # # @param [String|NilClass] location the target repository location or nil for '.' # @return [{String=>Hash}] the available references of the target repo. def self.ls_remote(location=nil) Git::Lib.new.ls_remote(location) end # open an existing git working directory # # this will most likely be the most common way to create # a git reference, referring to a working directory. # if not provided in the options, the library will assume # your git_dir and index are in the default place (.git/, .git/index) # # options # :repository => '/path/to/alt_git_dir' # :index => '/path/to/alt_index_file' def self.open(working_dir, options = {}) Base.open(working_dir, options) end end ruby-git-1.6.0/ISSUE_TEMPLATE.md0000644000175000017500000000043313615571573016214 0ustar terceiroterceiro### Subject of the issue Describe your issue here. ### Your environment * version of git and ruby-git * version of ruby ### Steps to reproduce Tell us how to reproduce this issue. ### Expected behaviour What did you expect to happen? ### Actual behaviour What actually happened?ruby-git-1.6.0/Rakefile0000644000175000017500000000066513615571573015163 0ustar terceiroterceirorequire 'bundler/gem_tasks' require 'rubygems' require "#{File.expand_path(File.dirname(__FILE__))}/lib/git/version" task :default => :test desc 'Run Unit Tests' task :test do |t| sh 'git config --global user.email "git@example.com"' if `git config user.email`.empty? sh 'git config --global user.name "GitExample"' if `git config user.name`.empty? $VERBOSE = true require File.dirname(__FILE__) + '/tests/all_tests.rb' end ruby-git-1.6.0/CHANGELOG.md0000644000175000017500000000540113615571573015320 0ustar terceiroterceiro# Change Log ## 1.6.0 See https://github.com/ruby-git/ruby-git/releases/tag/v1.6.0 ## 1.6.0.pre1 See https://github.com/ruby-git/ruby-git/releases/tag/v1.6.0.pre1 ## 1.5.0 See https://github.com/ruby-git/ruby-git/releases/tag/v1.5.0 ## 1.4.0 See https://github.com/ruby-git/ruby-git/releases/tag/v1.4.0 ## 1.3.0 * Dropping Ruby 1.8.x support ## 1.2.10 * Adding Git::Diff.name_status * Checking and fixing encoding on commands output to prevent encoding errors afterwards ## 1.2.9 * Adding Git.configure (to configure the git env) * Adding Git.ls_remote [Git.ls_remote(repo_path_or_url='.')] * Adding Git.describe [repo.describe(objectish, opts)] * Adding Git.show [repo.show(objectish=nil, path=nil)] * Fixing Git::Diff to support default references (implicit references) * Fixing Git::Diff to support diff over git .patch files * Fixing Git.checkout when using :new_branch opt * Fixing Git::Object::Commit to preserve its sha after fetching metadata * Fixing Git.is_remote_branch? to actually check against remote branches * Improvements over how ENV variables are modified * Improving thrade safety (using --git-dir and --work-tree git opts) * Improving Git::Object::Tag. Adding annotated?, tagger and message * Supporting a submodule path as a valid repo * Git.checkout - supporting -f and -b * Git.clone - supporting --branch * Git.fetch - supporting --prune * Git.tag - supporting ## 1.2.8 * Keeping the old escape format for windows users * revparse: Supporting ref names containing SHA like substrings (40-hex strings) * Fix warnings on Ruby 2.1.2 ## 1.2.7 * Fixing mesages encoding * Fixing -f flag in git push * Fixing log parser for multiline messages * Supporting object references on Git.add_tag * Including dotfiles on Git.status * Git.fetch - supporting --tags * Git.clean - supporting -x * Git.add_tag options - supporting -a, -m and -s * Added Git.delete_tag ## 1.2.6 * Ruby 1.9.X/2.0 fully supported * JRuby 1.8/1.9 support * Rubinius support * Git.clone - supporting --recursive and --config * Git.log - supporting last and [] over the results * Git.add_remote - supporting -f and -t * Git.add - supporting --fore * Git.init - supporting --bare * Git.commit - supporting --all and --amend * Added Git.remote_remote, Git.revert and Git.clean * Added Bundler to the formula * Travis configuration * Licence included with the gem ## 1.0.4 * added camping/gitweb.rb frontend * added a number of speed-ups ## 1.0.3 * Sped up most of the operations * Added some predicate functions (commit?, tree?, etc) * Added a number of lower level operations (read-tree, write-tree, checkout-index, etc) * Fixed a bug with using bare repositories * Updated a good amount of the documentation ## 1.0.2 * Added methods to the git objects that might be helpful ## 1.0.1 * Initial version ruby-git-1.6.0/.gitignore0000644000175000017500000000007313615571573015477 0ustar terceiroterceiro*.gem *.kpf *.sw? .DS_Store coverage pkg rdoc Gemfile.lock ruby-git-1.6.0/git.gemspec0000644000175000017500000000302013615571573015632 0ustar terceiroterceiro$LOAD_PATH.unshift File.expand_path('../lib', __FILE__) require 'git/version' Gem::Specification.new do |s| s.author = 'Scott Chacon and others' s.email = 'schacon@gmail.com' s.homepage = 'http://github.com/ruby-git/ruby-git' s.license = 'MIT' s.name = 'git' s.summary = 'Ruby/Git is a Ruby library that can be used to create, read and manipulate Git repositories by wrapping system calls to the git binary.' s.version = Git::VERSION s.require_paths = ['lib'] s.required_ruby_version = '>= 1.9' s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to?(:required_rubygems_version=) s.requirements = ['git 1.6.0.0, or greater'] s.add_runtime_dependency 'rchardet', '~> 1.8' s.add_development_dependency 'rake' s.add_development_dependency 'rdoc' s.add_development_dependency 'test-unit', '>=2', '< 4' s.extra_rdoc_files = ['README.md'] s.rdoc_options = ['--charset=UTF-8'] s.files = [ 'CHANGELOG.md', 'CONTRIBUTING.md', 'MAINTAINERS.md', 'LICENSE', 'README.md', 'lib/git.rb', 'lib/git/author.rb', 'lib/git/base.rb', 'lib/git/base/factory.rb', 'lib/git/branch.rb', 'lib/git/branches.rb', 'lib/git/config.rb', 'lib/git/diff.rb', 'lib/git/index.rb', 'lib/git/lib.rb', 'lib/git/log.rb', 'lib/git/object.rb', 'lib/git/path.rb', 'lib/git/remote.rb', 'lib/git/repository.rb', 'lib/git/stash.rb', 'lib/git/stashes.rb', 'lib/git/status.rb', 'lib/git/version.rb', 'lib/git/working_directory.rb' ] end