问题标签 [rugged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
831 浏览

ruby - 获取文件更改的最新提交

我手头的任务是弄清楚最后一次提交的提交 ID 是什么,特定文件在哪里更改。我正在使用红宝石/坚固耐用。我想出的唯一解决方案是遍历所有提交,在树中搜索与该文件的提交相关联的文件,并将该文件 oid 与第一个(最新)提交的文件的 oid 进行比较:

这可行,但似乎很复杂。必须有一种更简单的方法来获取信息,“提交改变了什么”。有没有更简单、更直接的方法来完成同样的事情?

0 投票
2 回答
106 浏览

git - repo.path 即使在创建初始化坚固的 repo 后也不返回任何内容

我使用下面的代码创建了一个 git 存储库。

但是,当我将上述代码作为 ruby​​ myfile.rb 执行时,我没有得到任何输出

0 投票
1 回答
800 浏览

git - 比较崎岖的 2 次提交

我没有找到任何关于在崎岖不平的情况下获得 2 个文件之间差异的文档。我使用下面的代码使用坚固的提交文件

如何在崎岖不平的环境中看到同一对象的 2 次提交之间的差异?

0 投票
2 回答
1813 浏览

grit - 使用坚固或砂砾的 git push 示例

我正在寻找一些代码示例,无论是坚固的还是砂砾,展示如何做一个git push.

背景

我有 rake 任务deploy:stagingdeploy:production我用它来部署我的应用程序。

我正在部署到 heroku,所以这些任务基本上执行以下操作:

  1. 获取最新的标签(例如。git describe --abbrev=0
  2. 将该标签表示的版本推送到指定的远程(例如git push staging v1.00
  3. 将版本存储在heroku config var中(例如heroku config:add APP_VERSION=v1.00

(那里还有一些检查,以确保我没有忘记在推送之前创建一个新标签等。)

最初,我使用 Rakefile 中的系统调用来执行这些 CLI 命令;然后我开始使用githeroku-api gems。

然而,git gem 似乎被放弃了(过去一年没有提交);看来,Grit 和坚固性现在是使用 Git 的标准宝石。

不幸的是,由于缺乏文档,我无法弄清楚如何使用这些库中的任何一个进行 git push。

(在以下示例中,假设我推送到的远程/分支是源/主,并且已经在本地存储库中设置为远程)

从坚固开始:

现在是砂砾:

任何帮助将不胜感激。

0 投票
4 回答
440 浏览

ruby - 如何使用坚固性检查我的 git 存储库中是否有未提交的更改?

如何使用坚固性检查我的 git repo 中是否有未提交的更改?

就像我如何以编程方式确定是否有未提交的更改?

0 投票
1 回答
1217 浏览

ruby - 如何以编程方式使用 Rugged 创建提交?

我正在尝试使用Ruggedlibgit2的 Ruby 绑定)以编程方式创建对现有存储库的提交。我尝试遵循 Rugged README中提供的文档,但我认为它与代码库的当前状态不太匹配。当我尝试运行以下代码时,我不断收到错误:

我得到的当前错误表明index.add线路有问题。它说TypeError: wrong argument type nil (expected Fixnum)

任何有助于更好地理解如何使用崎岖不平创建新提交的帮助将不胜感激。

更新

我刚刚通过运行更新Rugged 0.16.0到. 我上面详述的代码现在似乎可以工作了。我不确定为什么它不适用于 0.16.0。这个人似乎有他们在这个答案中详述的同样的问题。Rugged 0.18.0.gh.de28323gem install --prerelease rugged

0 投票
1 回答
299 浏览

ruby - Rugged error on Windows

When I ran the following:

r = Rugged::Repository.new('<myrepopath>')

I got the following error:

Rugged::OSError: The global/xdg file 'config' doesn't exist: The system cannot find the path specified.

How should I resolve it?

I'm using rugged 0.19.0 on Windows 7 and ruby -v outputs ruby 2.0.0p247 (2013-06-27) [x64-mingw32] on my machine.

0 投票
1 回答
1979 浏览

ruby - 使用 ruby​​ 坚固的 gem 访问 git 日志数据?

对于 git repo 中的给定文件,我想查找文件被修改的最后一次提交的 SHA 以及时间戳。

在命令行中,这些数据在特定文件路径的 git log 中是可见的,例如

使用 ruby​​ 的“git”gem 我也可以这样做:

这很棒,但是在循环很多路径时对我来说运行太慢了。由于 Rugged 改用 C 库,我希望它会更快,但看不到如何以坚固的语法构造正确的查询。有什么建议么?

0 投票
2 回答
2120 浏览

ruby - 坚固 - 获取,拉变基可能吗?

使用rugged如何执行以下操作fetchpullrebase

我正在使用该development分支,并在查看了此处找到的文档作为Remote课程指南之后。

编辑:因为git pull只是简写,git fetch更好git merge FETCH_HEAD的问题是如何执行git fetch,git mergegit rebase.

0 投票
1 回答
679 浏览

libgit2 - 如何使用 SSH 传输连接到远程

让存储库的origin远程有一个 ssh url。所以下面的代码:

提高Rugged::SshError: Cannot set up SSH connection without credentials

看起来rugged支持 SSH 传输,因为有Rugged::Credentials::SshKey类并且可以:credentialsRepository.clone_at. 但是我看不到任何方法可以Remote#connect在源代码中提供凭据。我错过了什么吗?

如果可以通过 ssh 连接,有没有办法从 ssh-agent 获取凭据?似乎libgit2可以查询 ssh-agent。