所以我正在尝试安装GitLab,他们让我使用名为"bundler"的gem,它基本上安装了运行应用程序所需的GEM.无论如何,在运行捆绑器后使用:
sudo -u git -H bundle install --deployment --without development test mysql aws
Run Code Online (Sandbox Code Playgroud)
这将完美安装一吨宝石然后大约2分钟进入安装我将在终端中收到以下错误.
Ruby版本:来自SVN的最新版本(我已经检查过并且很好)
操作系统:Ubuntu 14.04 LTS(Trusty)
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
checking for rb_trap_immediate in ruby.h,rubysig.h... no
checking for rb_thread_blocking_region()... no
checking for inotify_init() in sys/inotify.h... yes
checking for writev() in sys/uio.h... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_enable_interrupt()... no
checking for rb_time_new()... yes
checking for sys/event.h... no
checking for epoll_create() in sys/epoll.h... yes
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling …Run Code Online (Sandbox Code Playgroud) 我想知道如何使用 C-API 在 Git 中的两个标签之间找到所有提交?我知道这可以使用 CLI 工具轻松完成:
git log [第一次提交]..[第二次提交] --pretty=oneline
但是,我似乎无法弄清楚如何使用 C API 来做到这一点。我遇到的问题是图中最终出现了一个循环。
这是我在 Objective-Git 中使用的一些 Objective-C 代码,但是由于大多数人不了解 Objective-C,我很高兴在 C API 或其他一些 Git API 中得到答案。我想我必须保留以前遍历的提交或其他内容的字典?
- (void)traverseCommits: (GTCommit *)start withGoal: (GTCommit *)goal withHistory: (NSMutableDictionary *)history{
NSLog(@"%@", start.shortSHA);
if ([start.SHA isEqualToString:goal.SHA]) {
return;
}
for (GTCommit *c in start.parents) {
//[history setObject:c forKey:c.SHA];
if(![c.SHA isEqualToString:goal.SHA])
[self traverseCommits:c withGoal:goal withHistory:history];
}
}
Run Code Online (Sandbox Code Playgroud)