Rugged (libgit2'un Ruby bağını kullanarak) kullanarak varolan bir depoya program aracılığıyla bir program oluşturmaya çalışıyorum. Rugged README'da verilen belgeleri izlemeyi denedim, ancak bence kod tabanının mevcut durumuyla tam olarak eşleşmiyor. Ben aşağıdaki kodu çalıştırmayı deneyin alma hataları tutmak:Rugged ile programlı bir şekilde nasıl programlama yapılır?
require 'rugged'
# Create an instance of the existing repository
repo = Rugged::Repository.new('/full/path/to/repo')
# grab the current Time object for now
curr_time = Time.now
# write a new blob to the repository, hang on to the object id
oid = repo.write("Some content for the this blob - #{curr_time}.", 'blob')
# get the index for this repository
index = repo.index
# add the blob to the index
index.add(:path => 'newfile.txt', :oid => oid, :mode => 0100644)
curr_tree = index.write_tree(repo)
curr_ref = 'HEAD'
author = {:email=>'[email protected]',:time=>curr_time,:name=>'username'}
new_commit = Rugged::Commit.create(repo,
:author => author,
:message => "Some Commit Message at #{curr_time}.",
:committer => author,
:parents => [repo.head.target],
:tree => curr_tree,
:update_ref => curr_ref)
alıyorum güncel hata index.add
hattı ile yanlış bir şey olduğunu söylüyor. TypeError: wrong argument type nil (expected Fixnum)
diyor.
Engebeli yeni bir işlemin nasıl oluşturulacağını daha iyi anlamak için herhangi bir yardım çok takdir edilecektir.
Güncelleme
Sadece gem install --prerelease rugged
çalıştırarak Rugged 0.18.0.gh.de28323
için Rugged 0.16.0
güncellendi. Yukarıda ayrıntılandırdığım kod şimdi çalışıyor gibi görünüyor. Neden 0.16.0 ile çalışmadığından emin değilim. Bu kişi, this answer'da ayrıntılı olarak aynı soruna sahip gibi görünüyordu.
Satır numarası nedir? – fotanus
"index.add" ile satırda kırılıyor. – jbranchaud
Üzgünüz, herhangi bir nedenden dolayı index.add dosyasını okuyordum – fotanus