- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想用 libgit2 实现 git log -1 fullpath/myfile
。我是 libgit2 的新手。我在正确的轨道上吗?这是我目前所拥有的:
git_repository_head(&refToHead, repo);
headOID = git_reference_oid(refToHead);
git_commit_lookup(&headCommit, repo, headOID);
headTreeOID = git_commit_tree_oid(headCommit);
git_tree_lookup(&tree, repo, headTreeOID);
git_tree_entry_byname(tree, "repopath/myfile");
不幸的是 git_tree_entry_byname
似乎不适用于 repo 子目录中的文件。有什么想法吗?
谢谢, pull 斯
最佳答案
Unfortunately git_tree_entry_byname seems not to work for files in subdirectories of the repo.
git_tree_entry_byname
仅适用于直接在传递的树下的条目(树、blob 和支持时的子模块)。
您问题的一个简单解决方案是依赖 git_tree_get_subtree (请参阅 tests )以在给定其相对路径的情况下检索树中包含的最深子树。无论条目在树结构中有多深,这都会起作用。
因此,您必须调用 git_tree_git_subtree
检索您之后的条目的父树,然后调用 get_tree_entry_byname
将父树传递给它。
I want to implement git log -1 fullpath/myfile with libgit2
如果你愿意检索哪个提交最后更新了一个文件,你可能想看看这个 answer它给出了一些关于文件历史主题和警告的通用提示。
I can't find any clue to get the commit in your linked answer.
您必须利用 revision walking
API。
基本上,您必须从 HEAD
中找出答案oid
与您的 filename
匹配的树条目.完成此操作后,您必须递归地遍历 HEAD
的父级提交,并为每个提交树尝试并确定以下两个更改之一。
oid
的新文件在父树下 pop )一旦检测到一个循环,或者当您没有更多的提交要处理时,请立即退出循环。
关于c - "git log -1 fullpath/myfile"与 libgit2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481914/
我的最终 .exe 文件有问题。在编写代码时,我使用了 colorama 和 time 包,但最终编译的文件不包含它们。我使用 pyinstaller 进行编译,使用 PyCharm 作为 IDL。
我正在编写一个通用函数来检查变量是否包含文件或目录。所以我想出了一个想法,使用 boolean 返回类型函数来检查它。像这样: function boolean checkFileOrDirector
我的 /var/run/myfile 的权限是: -rwxr-xr-x 1 opentsdb opentsdb 2861 Nov 2 11:31 /etc/init.d/opentsdb 运行 op
我在脚本中使用 sed 进行替换,我想让被替换的文件覆盖该文件。通常我认为你会使用这个: % sed -i 's/cat/dog/' manipulate sed: illegal option --
我一直在研究 Flutter 中的一段代码,用于将指定的变量保存到文本文件中。这只需按下一个按钮即可。为了实现这一点,我使用了 path_provider 依赖项 代码如下所示: trailing:
echo " "; } echo ""; 该脚本现在可以正常工作,但是当我将整个表单排除在外,并使用 fil
尝试运行 opencv sample matlab call , 我收到一个错误 无效的 MEX 文件“mypath\displayImage.mexw64”:mypath\displayImage.
我正在构建播放 Wireshark 文件并使用 pcapdot.net 将数据包发送到网卡的应用程序。 在我的应用程序中,我获取根目录并仅添加过去 24 小时内的新文件。首先,我将目录中的所有文件添加
我是 java 的新手,正在尝试扩展 File 类以使用以下类向其添加更多方法和属性 import java.io.File; public class RecordingFile extends F
为什么 myfile.txt 为空?我尝试将内容附加到 myfile.txt 但当我打开它时它仍然是空的。正在创建文件。 import java.io.*; public class NewClass
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 8 年前。 这个问题似乎不是关于 a specific programming problem,
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Where will be create a new file in java, when path is
我正在尝试构建一个上传表单并且我正在收到通知( !) 注意: undefined index :第 19 行 C:\wamp32\www\game\upload.php 中的 myfile我使用的代码
我正在尝试创建一个列表字典,其键是字谜词,值(列表)包含该字谜词中所有可能的单词。 所以我的字典应该包含这样的内容 {'aaelnprt': ['parental', 'paternal', 'pre
我搜索过这个问题,发现了很多风格和想法,但没有真正的解决方案。所以,穿上我的石棉防护服并希望一切顺利,我敢再问一遍。 我管理过调用托管 C++ 代码的 C# 代码,而托管 C++ 代码又调用非托管 C
我得到了 The process cannot access the file "MyFile.log" because it is being used by another process. 当我
好的,所以我正在尝试将加密文本写入文件。 出于某种原因,我遇到了未在此范围内声明的编译错误。 这是我的 encryption.cpp 文件: #include #include #include
iMac-Mark:~ Mark$ python3 Python 3.3.2 (v3.3.2:d047928ae3f6, May 13 2013, 13:52:24) [GCC 4.2.1 (Appl
from tkinter import* from tkinter import filedialog import tkinter.ttk as ttk import datetime import
我正在创建一个 mp3tag 编辑器并希望它通过 android-buildin-filebrowser“myfiles”(com.sec.android.app.myfiles/com.sec.an
我是一名优秀的程序员,十分优秀!