问题标签 [dulwich]
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.
python - 如何正确安装 dulwich 以使 hg-git 在 Windows 上运行?
我正在尝试在 Windows 上使用 hg-git Mercurial 扩展(具体来说是 Windows 7 64 位)。我安装了 Mercurial 和 Git。我安装了 Python 2.5(32 位)。
我按照http://hg-git.github.com/上的说明安装了扩展。最初的 easy_install 失败是因为没有 Visual Studio 2003 就无法编译 dulwich。
我通过以下方式手动安装了德威:
- git clone git://git.samba.org/jelmer/dulwich.git
- cd德威
- c:\Python25\python setup.py --pure install
现在,当我运行 easy_install hg-git 时,它成功了(因为满足了 dulwich 依赖项)。
在我的 C:\Users\username\Mercurial.ini 中,我有:
当我在命令提示符下键入“hg”时,我看到:“*** 无法导入扩展 hggit:没有名为 hggit 的模块”
在我的 c:\Python25 文件夹下,我看到的对 hggit 的唯一引用是Lib\site-packages\hg_git-0.2.1-py2.5.egg
. 这应该在某处提取,还是应该按原样工作?
由于失败了,我尝试了 hg-git 页面中的“更多参与”指令,该指令建议克隆 git://github.com/schacon/hg-git.git 并在我的 Mercurial 配置中引用路径。我克隆了 repo,并将扩展文件更改为:
现在当我运行 hg 时,我看到:*** failed to import extension hggit from c:\code\hg-git\hggit: No module named dulwich.errors。
好的,这告诉我它现在正在寻找 hggit,因为我可以在 hg-git\hggit\git_handler.py 中看到它调用
这让我觉得德威没有正确安装,或者不在路径中。
更新:
从 Python 命令行:
产量Import Error: No module named dulwich
但是,在 C:\Python25\Lib\site-packages 下,我确实有一个似乎已填充的 dulwich-0.5.0-py2.5.egg 文件夹。这是通过上述步骤创建的。是否需要采取额外的步骤才能使其成为 Python“路径”的一部分?
从 Python 命令行(如答案之一中所建议):
产量[dulwich 0.5.0 (c:\python25\lib\site-packages\dulwich-0.5.0-py2.5.egg)]
那么这告诉我什么呢?导入 dulwich 失败,但显然 pkg_resources 可以找到它。我能用这些信息做什么?
python - 以编程方式 `git checkout .` 与德威
有这个代码
我最终在历史记录中提交,但创建的文件正在等待删除(git status
这样说)。
Agit checkout .
修复它。
我的问题是:如何以git checkout .
编程方式使用德威?
python - 在德威,我如何提交到分支而不是 HEAD?
显然 repo.do_commit(message='test commit', committer='Name ') 只提交给 refs/heads/master。
有没有办法将当前提交 ref 设置为另一个而不是 refs/heads/master?
或者是通过创建 Commit 对象(如文档中的教程所示)并将其父级设置为分支提交 ID 之一来提交到分支的唯一方法?
如果这是真的,那么除了提交到 refs/heads/master 之外,这将是使用 repo.do_commit 吗?
python - 如何在索引中添加一些东西,提交它,然后将 master 分支推送到带有 dulwich 的命名远程?
如何在索引中添加一些内容,如
然后
然后
使用德威?
到目前为止,我已经找到了这个http://www.samba.org/~jelmer/dulwich/apidocs/dulwich.index.Index.html但它并没有说太多,不是吗?
谢谢
python - 开始使用 Git Python
我的目标是从 Python 访问现有的 Git 存储库。我想获得回购历史和按需差异。
为了做到这一点,我从dulwich开始。所以我尝试了:
并得到OSError: [Errno 17] File exists: '/home/umpirsky/Projects/my-exising-git-repo/.git
医生说You can open an existing repository or you can create a new one.
。_
知道怎么做吗?我可以用德威获取历史和差异吗?你能推荐任何其他库来访问 Git 吗?我正在开发 Ubuntu 应用程序,因此最好有 ubuntu 软件包以便于部署。
我还将定期检查以检测 repo 中的新更改,因此我宁愿使用远程工作,这样我就可以检测到尚未拉到本地的更改。我不确定这应该如何工作,因此将提供任何帮助。
提前致谢。
dulwich - 使用 dulwich 以编程方式执行“git status”
我想知道我如何才能达到git status
与德威相当的水平?
我试过这个:
在添加/更改/重命名一些文件并将它们暂存以进行提交之后,这就是我尝试做的事情:
输出以下内容:
但是这个输出需要我进一步处理它来检测:
- 我修改了
README.txt
. - 我重命名
Makefile
为Makefile.mk
. - 我添加
TEST.txt
到存储库。
中的函数dulwich.diff_tree
为树更改提供了一个更好的界面......在实际提交之前这是不可能的吗?
python - Dulwich:如何自动暂存修改过的文件
在 git 命令行中,我们可以使用git commit -a
.
我怎样才能使用德威做到这一点?
python - 如何使用德威从遥控器拉出?
git pull
如何在 python dulwich 库中做类似的事情。
git - Dulwich:如何检测快进?
正如标题所暗示的,我怎么知道远程分支是否是本地分支的祖先,反之亦然?
python - 使用 Python dulwich 检查哪些分支包含特定的 git commit sha?
我想使用 dulwich 从 Python 脚本执行以下命令:
$ git branch --contains <myCommitSha> | wc -l
我打算检查一个特定的提交(sha)是否放置在多个分支中。
当然,我认为我可以从 Python 执行上述命令并解析输出(解析分支数),但这是不得已的解决方案。
还有其他想法/意见吗?提前致谢。