From 0379591399c08efa1eb2673b5a8054223c3b8fb7 Mon Sep 17 00:00:00 2001 From: Benjy Date: Fri, 22 Jun 2012 15:03:20 -0700 Subject: [PATCH 1/7] Fix a ruby 1.8 incompatibility bug. --- VERSION | 2 +- git-media-0.1.1.gem | Bin 0 -> 10240 bytes git-media-0.1.2.gem | Bin 0 -> 10240 bytes git-media-0.1.3.gem | Bin 0 -> 10240 bytes git-media-0.1.4.gem | Bin 0 -> 10240 bytes git-media.gemspec | 2 +- lib/git-media/filter-smudge.rb | 4 ++-- 7 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 git-media-0.1.1.gem create mode 100644 git-media-0.1.2.gem create mode 100644 git-media-0.1.3.gem create mode 100644 git-media-0.1.4.gem diff --git a/VERSION b/VERSION index d917d3e..845639e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.2 +0.1.4 diff --git a/git-media-0.1.1.gem b/git-media-0.1.1.gem new file mode 100644 index 0000000000000000000000000000000000000000..98ca69721082d7991816671866145ad3c8b6594d GIT binary patch literal 10240 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 literal 0 HcmV?d00001 diff --git a/git-media-0.1.3.gem b/git-media-0.1.3.gem new file mode 100644 index 0000000000000000000000000000000000000000..5e35538608c83048c6a1ef061d515f628c6bad28 GIT binary patch literal 10240 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 literal 0 HcmV?d00001 diff --git a/git-media.gemspec b/git-media.gemspec index 74a25c1..057f91a 100644 --- a/git-media.gemspec +++ b/git-media.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |s| s.name = %q{git-media} - s.version = "0.1.2" + s.version = "0.1.4" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Scott Chacon"] diff --git a/lib/git-media/filter-smudge.rb b/lib/git-media/filter-smudge.rb index 0a8c6d1..eca3661 100644 --- a/lib/git-media/filter-smudge.rb +++ b/lib/git-media/filter-smudge.rb @@ -6,7 +6,7 @@ def self.run! can_download = false # TODO: read this from config and implement # read checksum size - sha = STDIN.readline(64).strip # read no more than 64 bytes + sha = STDIN.readpartial(64).lines.first.chomp # read no more than 64 bytes if STDIN.eof? && sha.length == 40 && sha.match(/^[0-9a-fA-F]+$/) != nil # this is a media file media_file = File.join(media_buffer, sha.chomp) @@ -35,4 +35,4 @@ def self.run! end end -end \ No newline at end of file +end From 3eb8ac7e208445ba6f73ce5a67c3a9a8ea5ce047 Mon Sep 17 00:00:00 2001 From: Doug Fritz Date: Wed, 25 Jul 2012 18:13:45 -0700 Subject: [PATCH 2/7] drive support --- lib/git-media.rb | 23 +++++++++++++--- lib/git-media/transport/drive.rb | 45 ++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 lib/git-media/transport/drive.rb diff --git a/lib/git-media.rb b/lib/git-media.rb index 3c32810..ab45d43 100644 --- a/lib/git-media.rb +++ b/lib/git-media.rb @@ -15,9 +15,9 @@ def self.get_media_buffer def self.media_path(sha) buf = self.get_media_buffer - File.join(buf, sha) + File.join(buf, sha) end - + # TODO: select the proper transports based on settings def self.get_push_transport self.get_transport @@ -83,6 +83,21 @@ def self.get_transport raise "git-media.secret not set for atmos transport" end GitMedia::Transport::AtmosClient.new(endpoint, uid, secret, tag) + when "drive" + require 'git-media/transport/drive' + email = `git config git-media.email`.chomp + asp = `git config git-media.asp`.chomp + collection = `git config git-media.collection`.chomp + if email == "" + raise "git-media.email not set for drive transport" + end + if asp == "" + raise "git-media.asp (application specific password) not set for drive transport" + end + if collection == "" + raise "git-media.collection not set for drive transport" + end + GitMedia::Transport::GoogleDrive.new(email, asp, collection) else raise "Invalid transport #{transport}" end @@ -94,7 +109,7 @@ def self.get_pull_transport module Application def self.run! - + cmd = ARGV.shift # get the subcommand cmd_opts = case cmd when "filter-clean" # parse delete options @@ -125,7 +140,7 @@ def self.run! EOF end - + end end end diff --git a/lib/git-media/transport/drive.rb b/lib/git-media/transport/drive.rb new file mode 100644 index 0000000..a43b4bb --- /dev/null +++ b/lib/git-media/transport/drive.rb @@ -0,0 +1,45 @@ +require 'git-media/transport' +require 'google_drive' + +# git-media.transport drive +# git-media.email youname@gmail.com +# git-media.asp application specific password +# git-media.collection collectionName (should be shared with all users) + +module GitMedia + module Transport + class GoogleDrive < Base + + def initialize(email, asp, collection) + @drive = GoogleDrive.login(email, asp) + @collection = @drive.collection_by_title(collection) + end + + def read? + true + end + + def get_file(sha, to_file) + file = @collection.files("title" => sha, "title-exact" => true).first + file.download_to_file(to_file) + end + + def write? + true + end + + def put_file(sha, from_file) + f = @drive.upload_from_file(from_file, sha, :convert => false) + @collection.add(f) + end + + def get_unpushed(files) + keys = @collection.files.map { |f| f.title } + files.select do |f| + !keys.include?(f) + end + end + + end + end +end From c3bc132a6594c864cf1cea5e703c9ed926306393 Mon Sep 17 00:00:00 2001 From: Doug Fritz Date: Wed, 25 Jul 2012 18:25:09 -0700 Subject: [PATCH 3/7] updated gemspec and readme --- README.rdoc | 22 ++++++++++++++-------- git-media.gemspec | 3 ++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/README.rdoc b/README.rdoc index 94d9ae2..265124d 100644 --- a/README.rdoc +++ b/README.rdoc @@ -14,11 +14,11 @@ Setup the attributes filter settings. Setup the .gitattributes file to map extensions to the filter. (in repo - once) - $ echo "*.mov filter=media -crlf" > .gitattributes + $ echo "*.mov filter=media -crlf" > .gitattributes -Staging files with those extensions will automatically copy them to the +Staging files with those extensions will automatically copy them to the media buffer area (.git/media) until you run 'git media sync' wherein they -are uploaded. Checkouts that reference media you don't have yet will try to +are uploaded. Checkouts that reference media you don't have yet will try to be automatically downloaded, otherwise they are downloaded when you sync. Next you need to configure git to tell it where you want to store the large files. @@ -28,13 +28,14 @@ There are four options: 2. Storing locally in a filesystem path 3. Storing remotely via SCP (should work with any SSH server) 4. Storing remotely in atmos +5. Storing remotely in Google Drive Here are the relevant sections that should go either in ~/.gitconfig (for global settings) or in clone/.git/config (for per-repo settings). [git-media] - transport = - + transport = + # settings for scp transport scpuser= scphost= @@ -54,6 +55,10 @@ or in clone/.git/config (for per-repo settings). secret= tag= + # settings for drive transport + email= + asp= + collecton= == Usage @@ -62,7 +67,7 @@ or in clone/.git/config (for per-repo settings). $ (hack, stage, commit) $ git media sync -You can also check the status of your media files via +You can also check the status of your media files via $ git media status @@ -76,17 +81,18 @@ that is. If you want to upload & delete the local cache of media files, run: $ git config --global media.auto-download false -== Installing +== Installing $ sudo gem install trollop $ sudo gem install s3 + $ sudo gem install google_drive $ sudo gem install ruby-atmos-pure $ sudo gem install right_aws $ gem build git-media.gemspec $ sudo gem install git-media-0.1.1.gem == Notes for Windows -It is important to switch off git smart newline character support for media files. +It is important to switch off git smart newline character support for media files. Use "-crlf" switch in .gitattributes (for example "*.mov filter=media -crlf") or config option "core.autocrlf = false". If installing on windows, you might run into a problem verifying certificates diff --git a/git-media.gemspec b/git-media.gemspec index 74a25c1..abc23ae 100644 --- a/git-media.gemspec +++ b/git-media.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |s| s.name = %q{git-media} - s.version = "0.1.2" + s.version = "0.1.3" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Scott Chacon"] @@ -33,6 +33,7 @@ Gem::Specification.new do |s| "lib/git-media/transport/s3.rb", "lib/git-media/transport/atmos_client.rb", "lib/git-media/transport/scp.rb", + "lib/git-media/transport/drive.rb", "lib/git-media/transport.rb", "lib/git-media.rb" ] From c6d5545ff1805b6f553db47999f2de9ff072c3b4 Mon Sep 17 00:00:00 2001 From: Doug Fritz Date: Wed, 25 Jul 2012 18:27:26 -0700 Subject: [PATCH 4/7] resolved name collision --- lib/git-media.rb | 16 ++++++++-------- lib/git-media/transport/drive.rb | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/git-media.rb b/lib/git-media.rb index ab45d43..49c2131 100644 --- a/lib/git-media.rb +++ b/lib/git-media.rb @@ -34,20 +34,20 @@ def self.get_transport path = `git config git-media.scppath`.chomp port = `git config git-media.scpport`.chomp if user === "" - raise "git-media.scpuser not set for scp transport" + raise "git-media.scpuser not set for scp transport" end if host === "" - raise "git-media.scphost not set for scp transport" + raise "git-media.scphost not set for scp transport" end if path === "" - raise "git-media.scppath not set for scp transport" + raise "git-media.scppath not set for scp transport" end GitMedia::Transport::Scp.new(user, host, path, port) when "local" path = `git config git-media.localpath`.chomp if path === "" - raise "git-media.localpath not set for local transport" + raise "git-media.localpath not set for local transport" end GitMedia::Transport::Local.new(path) when "s3" @@ -55,13 +55,13 @@ def self.get_transport key = `git config git-media.s3key`.chomp secret = `git config git-media.s3secret`.chomp if bucket === "" - raise "git-media.s3bucket not set for s3 transport" + raise "git-media.s3bucket not set for s3 transport" end if key === "" - raise "git-media.s3key not set for s3 transport" + raise "git-media.s3key not set for s3 transport" end if secret === "" - raise "git-media.s3secret not set for s3 transport" + raise "git-media.s3secret not set for s3 transport" end GitMedia::Transport::S3.new(bucket, key, secret) when "atmos" @@ -97,7 +97,7 @@ def self.get_transport if collection == "" raise "git-media.collection not set for drive transport" end - GitMedia::Transport::GoogleDrive.new(email, asp, collection) + GitMedia::Transport::Drive.new(email, asp, collection) else raise "Invalid transport #{transport}" end diff --git a/lib/git-media/transport/drive.rb b/lib/git-media/transport/drive.rb index a43b4bb..bee8a58 100644 --- a/lib/git-media/transport/drive.rb +++ b/lib/git-media/transport/drive.rb @@ -8,7 +8,7 @@ module GitMedia module Transport - class GoogleDrive < Base + class Drive < Base def initialize(email, asp, collection) @drive = GoogleDrive.login(email, asp) From cd49d0483b4c18deea8d786565b32178067bb288 Mon Sep 17 00:00:00 2001 From: Doug Fritz Date: Wed, 22 Aug 2012 14:54:18 -0700 Subject: [PATCH 5/7] typo in README --- README.rdoc | 68 ++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/README.rdoc b/README.rdoc index 265124d..374ef1e 100644 --- a/README.rdoc +++ b/README.rdoc @@ -7,14 +7,14 @@ without storing the media in Git itself. Setup the attributes filter settings. - (once after install) - $ git config filter.media.clean "git-media filter-clean" - $ git config filter.media.smudge "git-media filter-smudge" + (once after install) + $ git config filter.media.clean "git-media filter-clean" + $ git config filter.media.smudge "git-media filter-smudge" Setup the .gitattributes file to map extensions to the filter. - (in repo - once) - $ echo "*.mov filter=media -crlf" > .gitattributes + (in repo - once) + $ echo "*.mov filter=media -crlf" > .gitattributes Staging files with those extensions will automatically copy them to the media buffer area (.git/media) until you run 'git media sync' wherein they @@ -33,52 +33,52 @@ There are four options: Here are the relevant sections that should go either in ~/.gitconfig (for global settings) or in clone/.git/config (for per-repo settings). - [git-media] - transport = + [git-media] + transport = - # settings for scp transport - scpuser= - scphost= - scppath= + # settings for scp transport + scpuser= + scphost= + scppath= - # settings for local transport - path= + # settings for local transport + path= - # settings for s3 transport - s3bucket= - s3key= - s3secret= + # settings for s3 transport + s3bucket= + s3key= + s3secret= - # settings for atmos transport - endpoint= - uid= - secret= - tag= + # settings for atmos transport + endpoint= + uid= + secret= + tag= - # settings for drive transport - email= - asp= - collecton= + # settings for drive transport + email= + asp= + collection= == Usage - (in repo - repeatedly) - $ (hack, stage, commit) - $ git media sync + (in repo - repeatedly) + $ (hack, stage, commit) + $ git media sync You can also check the status of your media files via - $ git media status + $ git media status Which will show you files that are waiting to be uploaded and how much data that is. If you want to upload & delete the local cache of media files, run: - $ git media clear + $ git media clear == Config Settings - $ git config --global media.auto-download false + $ git config --global media.auto-download false == Installing @@ -97,9 +97,9 @@ Use "-crlf" switch in .gitattributes (for example "*.mov filter=media -crlf") or If installing on windows, you might run into a problem verifying certificates for S3 or something. If that happens, modify - C:\Ruby191\lib\ruby\gems\1.9.1\gems\right_http_connection-1.2.4\lib\right_http_connection.rb + C:\Ruby191\lib\ruby\gems\1.9.1\gems\right_http_connection-1.2.4\lib\right_http_connection.rb And add at line 310, right before "@http.start": - @http.verify_mode = OpenSSL::SSL::VERIFY_NONE + @http.verify_mode = OpenSSL::SSL::VERIFY_NONE == Copyright From 466aa814f638691a6e9a8cf9efd5be138ad13156 Mon Sep 17 00:00:00 2001 From: Paul Schuegraf Date: Sun, 23 Sep 2012 18:47:11 -0700 Subject: [PATCH 6/7] Added gemfile and dependencies --- Gemfile | 2 ++ git-media.gemspec | 5 +++++ 2 files changed, 7 insertions(+) create mode 100644 Gemfile diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..817f62a --- /dev/null +++ b/Gemfile @@ -0,0 +1,2 @@ +source 'http://rubygems.org' +gemspec diff --git a/git-media.gemspec b/git-media.gemspec index 74a25c1..ece704e 100644 --- a/git-media.gemspec +++ b/git-media.gemspec @@ -43,6 +43,11 @@ Gem::Specification.new do |s| s.rubygems_version = %q{1.3.1} s.summary = %q{"This is a summary! Stop yer whining"} + s.add_dependency 'trollop' + s.add_dependency 's3' + s.add_dependency 'ruby-atmos-pure' + s.add_dependency 'right_aws' + if s.respond_to? :specification_version then current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION s.specification_version = 2 From da64aa8dbc8544085a82c61b69b0d5c9d77f4afb Mon Sep 17 00:00:00 2001 From: Paul Schuegraf Date: Wed, 26 Sep 2012 01:41:38 -0700 Subject: [PATCH 7/7] Updated to Rspec 2, made test pass --- Gemfile.lock | 51 ++++++++++++++++++++++++++++++++++++++++++++ Rakefile | 17 +++++---------- git-media-0.1.1.gem | Bin 10240 -> 0 bytes git-media-0.1.2.gem | Bin 10240 -> 0 bytes git-media-0.1.3.gem | Bin 10240 -> 0 bytes git-media-0.1.4.gem | Bin 10240 -> 0 bytes git-media.gemspec | 2 ++ spec/media_spec.rb | 16 +++++++------- spec/spec_helper.rb | 15 ++++++------- 9 files changed, 73 insertions(+), 28 deletions(-) create mode 100644 Gemfile.lock delete mode 100644 git-media-0.1.1.gem delete mode 100644 git-media-0.1.2.gem delete mode 100644 git-media-0.1.3.gem delete mode 100644 git-media-0.1.4.gem diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..a622293 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,51 @@ +PATH + remote: . + specs: + git-media (0.1.4) + right_aws + ruby-atmos-pure + s3 + trollop + +GEM + remote: http://rubygems.org/ + specs: + diff-lcs (1.1.3) + git (1.2.5) + jeweler (1.8.4) + bundler (~> 1.0) + git (>= 1.2.5) + rake + rdoc + json (1.7.5) + log4r (1.1.10) + proxies (0.2.1) + rake (0.9.2.2) + rdoc (3.12) + json (~> 1.4) + right_aws (3.0.4) + right_http_connection (>= 1.2.5) + right_http_connection (1.3.0) + rspec (2.11.0) + rspec-core (~> 2.11.0) + rspec-expectations (~> 2.11.0) + rspec-mocks (~> 2.11.0) + rspec-core (2.11.1) + rspec-expectations (2.11.3) + diff-lcs (~> 1.1.3) + rspec-mocks (2.11.3) + ruby-atmos-pure (1.0.5) + log4r (>= 1.1.9) + ruby-hmac (>= 0.4.0) + ruby-hmac (0.4.0) + s3 (0.3.11) + proxies (~> 0.2.0) + trollop (2.0) + +PLATFORMS + ruby + +DEPENDENCIES + git-media! + jeweler + rspec diff --git a/Rakefile b/Rakefile index a410e28..1f56890 100644 --- a/Rakefile +++ b/Rakefile @@ -16,22 +16,15 @@ rescue LoadError puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler" end -require 'spec/rake/spectask' -Spec::Rake::SpecTask.new(:spec) do |spec| - spec.libs << 'lib' << 'spec' - spec.spec_files = FileList['spec/**/*_spec.rb'] +require 'rspec/core/rake_task' +RSpec::Core::RakeTask.new(:spec) do |spec| + spec.pattern = 'spec/**/*_spec.rb' + spec.rspec_opts = ['--backtrace'] end -Spec::Rake::SpecTask.new(:rcov) do |spec| - spec.libs << 'lib' << 'spec' - spec.pattern = 'spec/**/*_spec.rb' - spec.rcov = true -end - - task :default => :spec -require 'rake/rdoctask' +require 'rdoc/task' Rake::RDocTask.new do |rdoc| if File.exist?('VERSION.yml') config = YAML.load(File.read('VERSION.yml')) diff --git a/git-media-0.1.1.gem b/git-media-0.1.1.gem deleted file mode 100644 index 98ca69721082d7991816671866145ad3c8b6594d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 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 diff --git a/git-media-0.1.3.gem b/git-media-0.1.3.gem deleted file mode 100644 index 5e35538608c83048c6a1ef061d515f628c6bad28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 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 diff --git a/git-media.gemspec b/git-media.gemspec index 576a8ef..eb5e130 100644 --- a/git-media.gemspec +++ b/git-media.gemspec @@ -47,6 +47,8 @@ Gem::Specification.new do |s| s.add_dependency 's3' s.add_dependency 'ruby-atmos-pure' s.add_dependency 'right_aws' + s.add_development_dependency 'jeweler' + s.add_development_dependency 'rspec' if s.respond_to? :specification_version then current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION diff --git a/spec/media_spec.rb b/spec/media_spec.rb index 0a6a106..38c7235 100644 --- a/spec/media_spec.rb +++ b/spec/media_spec.rb @@ -1,4 +1,4 @@ -require File.expand_path(File.dirname(__FILE__) + '/spec_helper') +require 'spec_helper' # I realize this is horrible, horrible rspec but I want to run the actual # git commands and it takes forever to setup the test env each time, so @@ -12,7 +12,7 @@ git("commit -m 'testing'") # check that we saved the sha and not the data - size = git("cat-file -s master:testing1.mov") + size = git("cat-file -s master:testing1.x22") size.should eql('41') # check that the data is in our buffer area @@ -22,15 +22,15 @@ end # check that removing the file and checking out returns the data - File.unlink('testing1.mov') - git('checkout testing1.mov') - File.size('testing1.mov').should eql(7) + File.unlink('testing1.x22') + git('checkout testing1.x22') + File.size('testing1.x22').should eql(7) # check that removing the file and checking out sans data returns the sha - File.unlink('testing1.mov') + File.unlink('testing1.x22') File.unlink('.git/media/objects/20eabe5d64b0e216796e834f52d61fd0b70332fc') - git('checkout testing1.mov') - File.size('testing1.mov').should eql(41) + git('checkout testing1.x22') + File.size('testing1.x22').should eql(41) end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 73c1504..dcb676a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,4 @@ require 'rubygems' -require 'spec' require 'tempfile' require 'pp' @@ -7,7 +6,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) require 'git-media' -Spec::Runner.configure do |config| +RSpec.configure do |config| end def in_temp_git @@ -24,12 +23,12 @@ def in_temp_git def in_temp_git_w_media bin = File.join(File.dirname(__FILE__), '..', 'bin', 'git-media') in_temp_git do - append_file('testing1.mov', '1234567') - append_file('testing2.mov', '123456789') + append_file('testing1.x22', '1234567') + append_file('testing2.x22', '123456789') append_file('normal.txt', 'hello world') - append_file('.gitattributes', '*.mov filter=media') - `git config filter.media.clean "#{bin} clean"` - `git config filter.media.smudge "#{bin} smudge"` + append_file('.gitattributes', '*.x22 filter=media -crlf') + `git config filter.media.clean "#{bin} filter-clean"` + `git config filter.media.smudge "#{bin} filter-smudge"` yield end end @@ -42,4 +41,4 @@ def append_file(filename, content) def git(command) output = `git #{command} 2>/dev/null`.strip -end \ No newline at end of file +end