标签: libgit2

如何检索文件的历史记录?

我得到了另一个libgit2问题,非常感谢你的帮助.

我正在尝试检索文件历史记录,即更改此文件的提交列表.而且它似乎非常传统......据我所见,没有任何功能.

我能想到的唯一方法是使用版本控制API迭代修订版本,检查附加到提交的树对象并在那里搜索给定文件,如果找到,则将提交添加到我的列表中,否则继续下一次提交.

但它对我来说似乎不是最理想的......

可能是有任何其他方法,例如,直接查看.git文件夹并获取所需信息吗?

提前谢谢了!

git history libgit2 libgit2sharp

21
推荐指数
1
解决办法
3523
查看次数

原始Git和libgit2之间共享哪些代码?

原始的Git代码库libgit2有哪些代码和多少代码(从命令行客户端入口点除了所有Git功能)?

我在"稳定" libgit2是如何,以及如何主要感兴趣的轻松快速的bug修复和/或改进从原始的Git代码库未来的发展可以通过libgit2通过.

git libgit2

20
推荐指数
2
解决办法
3633
查看次数

libgit2返回:在TortoiseGit中找不到Refspec'refs/heads/origin/HEAD'错误

启动TortoiseGit时出现此错误:

错误对话框截图

无法得到所有裁判.
libgit2返回:未找到Refspec'refs/heads/origin/HEAD'

虽然烦人,但它并不妨碍我使用TortoiseGit.但是,我想让它消失,因为它很烦人.我该如何解决?

git tortoisegit libgit2

14
推荐指数
1
解决办法
7803
查看次数

Git存储库内部格式解释

有没有关于Git如何在其存储库中存储文件的文档?我试图通过互联网搜索,但没有可用的结果.也许我正在使用不正确的查询或者这可能是一个很大的秘密 - Git存储库内部格式?

让我解释一下,为什么我需要这个火箭科学信息:我正在使用C#来获取文件历史表格存储库.但是在libgit2sharp图书馆里,目前尚未实施.所以(作为一个负责任的人;)我需要自己实现这个功能,并为社区做出贡献.

但是在将内核源代码移动到github后,我甚至不知道从哪里开始搜索.

提前谢谢了!

c# git github libgit2 libgit2sharp

13
推荐指数
1
解决办法
6167
查看次数

是否有比Git更好的数据库(具有可序列化,不可变,版本化的树)?

想象一下Git背后的数据结构.它就像一个有条理的持久性数据结构,除了使用散列引用而不是传统的指针.

我需要Git的数据结构,除了没有任何工作树和索引的东西.并且将有数百万个分支机构,每个分支机构跟踪少数其他本地分支机构.提交和合并将在不同的线程上每分钟发生几千次.拉动会每秒发生一次.

libgit2jgit之间我可以使用Git的数据存储子系统.

但我使用合适的工具吗?是否有一个具有git功能的数据库,但更快/更多并发/可扩展/更少阻抗不匹配?内存缓存写入非常有用.

任务:

一个协作编辑的游戏.每个玩家都有自己的分支,他们对游戏世界所做的每一项改变都只适用于他们的版本.可信用户将更改合并回"主"分支.数据和源代码通常捆绑在一起,需要相同的分支和合并功能.

git graph-theory nosql jgit libgit2

10
推荐指数
1
解决办法
2962
查看次数

Git和libgit2之间的区别

我不确定我是否理解gitlibgit2正确之间的区别,因为存储库git不同libgit2,我的意思是它们不一样.

我想知道这两个库之间有什么区别吗?

git libgit2

10
推荐指数
1
解决办法
1243
查看次数

什么是git日志路径的LibGit2Sharp等价物?

如何获取包含特定文件的提交列表,即等效git log pathLibGit2Sharp.

它没有实施,还是有一种我失踪的方式?

c# git libgit2 libgit2sharp

9
推荐指数
3
解决办法
2347
查看次数

使用pygit2创建提交

我想在分支上进行提交(例如master).

我使用pygit2(pygit2.clone_repository)制作存储库克隆

然后我更改存储库中的现有文件.

然后我运行它来进行提交:

index = repository.index
index.add_all()
index.write()
author = pygit2.Signature(user_name, user_mail)
commiter = pygit2.Signature(user_name, user_mail)
tree = repository.TreeBuilder().write()
oid = repository.create_commit(reference, author, commiter, message,tree,[repository.head.get_object().hex])
Run Code Online (Sandbox Code Playgroud)

但是当我去存储库运行时git status:

On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file:   test.txt
Run Code Online (Sandbox Code Playgroud)

似乎添加了修改后的文件以进行提交,但提交未成功.使用返回的Oid,我可以在pygit2存储库中找到commit属性.

我错过了什么 ?

git libgit2 pygit2

9
推荐指数
1
解决办法
1946
查看次数

使用libgit2sharp在提交及其父级之间进行更改

我正在使用libgit2sharp(libgit2的C#包装器)并且一直在遇到问题,因为它没有很多我希望的功能(希望我能尽快做出贡献;这看起来像是一个非常有用的项目)

我现在要做的是获取从特定提交及其父级更改的文件列表.我不会试图找出合并与其两个父母之间的变化.我对常规提交更感兴趣.

这些家伙(https://github.com/libgit2/libgit2sharp/issues/89)正在研究类似的东西.我认为他们的程序是一个合理的想法,但我对GIT内部的理解有点弱(最终用户的GIT指南有很多指南,但内部结构却没有那么多)

我很好奇GIT本身如何执行"git diff"命令.据说GIT实际上并不存储增量,而是文件的完整版本(如果它没有改变,它只会指向现有的SHA.这些信息可以从各种来源找到,例如http://xentac.net/2012/01 /19/the-real-difference-between-git-and-mercurial.html).这似乎使得更难以在两次提交之间进行更改(在我的情况下是特定提交及其单个父级),因为数据不是作为提交的一部分存储的(如果您检查libgit2sharp的Commit.cs中的Commit类,这很明显)文件).

我可以通过提交访问的是树.是否有必要执行以下操作以查找此信息:

1)从所需的提交开始,然后沿着树向下走,并将所有SHA值存储在一个集合中.

2)从父级开始进行所需的提交,然后沿着其树向下移动,将其所有blob SHA值存储在另一个集合中.

3)更改文件的SHA将是不在两组交集中的文件.

我用这种方法看到的问题是它看起来没有办法从blob的SHA值中获取文件名(我没有看到任何可以在libgit2sharp的Blob.cs文件中执行此操作).

我知道这个问题有很多方面,但它们是从git获取特定数据的大目标的一部分.

谢谢.

git libgit2 libgit2sharp

8
推荐指数
1
解决办法
4357
查看次数

有没有用libgit2,libgit2sharp,Ngit用msysgit替换windows?

嗨,我喜欢Git,但似乎与人和朋友分享Windows项目并不好玩,因为与tortoisehg或tortoisesvn(不是它的DVCS)相比,gitextensions tortoisegit开箱即用是丑陋的.在bash shell中使用msysgit并不像linux/Mac那样好.

那么有没有新的竞争者(alpha项目等(甚至与其他libs))?

我很想看到这些新的Git库腾飞!

windows git libgit2 libgit2sharp

8
推荐指数
1
解决办法
2244
查看次数

标签 统计

git ×10

libgit2 ×10

libgit2sharp ×5

c# ×2

github ×1

graph-theory ×1

history ×1

jgit ×1

nosql ×1

pygit2 ×1

tortoisegit ×1

windows ×1