问题标签 [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.

0 投票
11 回答
14662 浏览

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 可以找到它。我能用这些信息做什么?

0 投票
4 回答
3794 浏览

python - 以编程方式 `git checkout .` 与德威

有这个代码

我最终在历史记录中提交,但创建的文件正在等待删除(git status这样说)。

Agit checkout .修复它。

我的问题是:如何以git checkout .编程方式使用德威?

0 投票
1 回答
765 浏览

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 吗?

0 投票
2 回答
424 浏览

python - 如何在索引中添加一些东西,提交它,然后将 master 分支推送到带有 dulwich 的命名远程?

如何在索引中添加一些内容,如

然后

然后

使用德威?

到目前为止,我已经找到了这个http://www.samba.org/~jelmer/dulwich/apidocs/dulwich.index.Index.html但它并没有说太多,不是吗?

谢谢

0 投票
2 回答
5924 浏览

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 中的新更改,因此我宁愿使用远程工作,这样我就可以检测到尚未拉到本地的更改。我不确定这应该如何工作,因此将提供任何帮助。

提前致谢。

0 投票
2 回答
820 浏览

dulwich - 使用 dulwich 以编程方式执行“git status”

我想知道我如何才能达到git status与德威相当的水平?

我试过这个:

在添加/更改/重命名一些文件并将它们暂存以进行提交之后,这就是我尝试做的事情:

输出以下内容:

但是这个输出需要我进一步处理它来检测:

  1. 我修改了README.txt.
  2. 我重命名MakefileMakefile.mk.
  3. 我添加TEST.txt到存储库。

中的函数dulwich.diff_tree为树更改提供了一个更好的界面......在实际提交之前这是不可能的吗?

0 投票
1 回答
330 浏览

python - Dulwich:如何自动暂存修改过的文件

在 git 命令行中,我们可以使用git commit -a.

我怎样才能使用德威做到这一点?

0 投票
2 回答
2078 浏览

python - 如何使用德威从遥控器拉出?

git pull如何在 python dulwich 库中做类似的事情。

0 投票
1 回答
208 浏览

git - Dulwich:如何检测快进?

正如标题所暗示的,我怎么知道远程分支是否是本地分支的祖先,反之亦然?

0 投票
4 回答
2525 浏览

python - 使用 Python dulwich 检查哪些分支包含特定的 git commit sha?

我想使用 dulwich 从 Python 脚本执行以下命令:

$ git branch --contains <myCommitSha> | wc -l

我打算检查一个特定的提交(sha)是否放置在多个分支中。

当然,我认为我可以从 Python 执行上述命令并解析输出(解析分支数),但这是不得已的解决方案。

还有其他想法/意见吗?提前致谢。