问题标签 [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 投票
1 回答
573 浏览

python - 在不使用孤儿标志的情况下创建孤儿分支

我有一个带有一些分支的现有仓库。我想创建一个没有任何历史记录的新分支。我正在尝试使用 Dulwich 来做到这一点,它支持大多数 git 操作,但不支持孤儿标志。

在不实际使用该标志的情况下创建孤立分支的等效 Git 操作是什么?理想情况下,我想:

  • 克隆回购
  • 使用 repo 的内容创建一个新分支,但没有历史记录
  • 将分支推送到仓库

这是可能的还是我需要创建一个空的新分支,克隆到一个单独的目录并将内容复制回来?

0 投票
0 回答
1275 浏览

python - 我使用 --global-option 安装一个特定的包。如何将该包添加为 setup.py 中的依赖项?

我正在使用这个名为 Dulwich 的软件包。在开发时,我这样安装它:

我想将 dulwich 作为依赖项添加到我自己的包的 setup.py 文件中,但我不确定如何让它使用该纯标志。如果我的依赖项看起来像这样:

它会失败。我已经尝试了添加 --pure 和 --global-options 的所有变体,但它们都失败了,错误如下:

我应该如何正确将此包添加为依赖项?最终目标是我可以把我的包放在 PyPi 上,这样当有人跑的时候

pip install dulwich --global-option="--pure"它也会自动运行相当于

0 投票
2 回答
584 浏览

python - 使用 SSH 使用 dulwich 进行克隆 - 让 dulwich 知道公钥(挂断异常)

我设法使用带有 HTTP url 的 dulwich 进行克隆,但是当我尝试使用 SSH 进行克隆时,我得到一个“HangupException”。dulwich 是否有可能无法访问 ~/.ssh 文件夹中的公钥,然后无法进行 SSH 连接?这需要在德威配置中添加吗?这是我得到的错误:

0 投票
1 回答
957 浏览

python - Hg Git Pull 导致打开文件过多错误

我有一个跟踪 git 存储库的 Mercurial 存储库。它在 Windows 10 上运行良好。现在我将它作为目录移动到 Mac,然后运行hg reset -Ca只是为了清理它。现在我试图运行hg pull它会导致这样的错误:

我查了一下,看起来我有最新版本的hg-gitdulwich

Mercurial 也是最新的

我检查了 Windows 上的 Mercurial 版本,4.4.2如果这很重要。我想知道是否有人遇到过这样的问题,并且可能有解决方法或修复方法。

0 投票
1 回答
127 浏览

python - git 存储库数据结构是否使用规范编码?

我正在使用 dulwich(一个 Python 库)来访问 git 存储库。当我get_object用来检索提交时,它有许多属性。其中之一是author。当我检索这个属性时,我得到bytes了,所以这个属性是一个未知的编码。

有没有我可以安全假设的编码?git 在存储之前是否会将所有元数据转换为 utf-8?如果没有,我怎么知道使用哪种编码来解码字节?

0 投票
1 回答
197 浏览

python - Dulwich 备忘单:如何重现“git ls-files”?

亲爱的社区成员,

我正在开发一个代码分析系统,并想用 Dulwich 模块替换对 CLI Git 应用程序的调用。作为第一步,我需要将“git ls-files”命令替换为 Dulwich 等效命令。我是通过以下方式做到的:

快速断言显示输出不同。可能是什么原因?

在@jelmer 的帮助下回答我自己的问题。问题的原因在于我评论的那一行。现在输出匹配。

0 投票
1 回答
146 浏览

git-log - 德威备忘单:如何重现“git log”?

亲爱的社区成员,

我正在开发一个代码分析系统,并想用 Dulwich 模块替换对 CLI Git 应用程序的调用。作为第二步,我需要将“git log”命令替换为 Dulwich 等效命令。

具体来说,我正在尝试重现以下命令:

必须类似于:

我的最终目标是获取与给定文件相关的 blob 列表(例如,用 SHA 表示)。

实现它的最佳方法是什么?

0 投票
1 回答
390 浏览

python - 与德威的分支机构合作(访问对象/结帐)

我对 Dulwich 有疑问(从 GitPython 切换到它,因为众所周知的 Windows 错误会在 .git 文件夹中打开文件)。

我正在尝试从当前打开的 repo 的另一个分支(上次提交的状态)获取文件。在 GitPython 中,这个任务可以很容易地解决:

但是我没有找到任何舒适的方式来处理德威的分支机构。

在写这个问题时,我发现了一个get_refs方法,它返回包含所有 refs 的字典和它们指向的提交。现在我想我可以得到最后一次提交的 SHA,但是 refs 使用起来非常不友好——我需要使用这种形式来获得提交:

之后我可以通过这种方式获取我的文件:

是否有适当的(更“pythonic”/“gitonic”)方法来获取所需的文件版本,而无需完全检查分支?一些暂存/未暂存的文件可以在程序运行时存储在 repo 中,我想它们会中断结帐过程。
现在对我来说主要问题是需要将通常的分支名称“打包”为“refs/heads/”形式。
如果没有更准确的方法来获取这些信息 - 我希望我的问题将来可以帮助某人:)

Python:3.6.1
德威:0.19.6

0 投票
2 回答
188 浏览

git - 德威上演的一行代码更改显示每一行不同

我有一个单行更改的文件:git status报告

这是diff报告的变化

现在我进行更改:

如果我要求一份关于分阶段更改的报告,我会看到相同的单行更改:

现在我取消更改

我希望能够使用 Dulwich 来管理暂存和提交。所以在 Idle 之后reset,我这样做:

之后,git status将更改显示为阶段性,就像以前一样

但是,如果我现在发出一个git diff命令,我会得到一个差异报告,其中显示文件的所有 1500 多行都已更改:

编辑:跟进@RomainVALERI 的有用评论,我尝试了这个命令

它报告一行更改。所以这是一个行尾问题。但我需要 Dulwich 操作可以与命令行操作互换。我如何告诉德威Repo.stage()以这种方式处理行尾git add

我尝试使用porcelain.add()而不是Repo.stage()

但这没有任何帮助。

0 投票
2 回答
187 浏览

python - 使用 dulwich 库获取当前 Git 分支名称

我正在尝试使用dulwich库获取 Git 存储库当前分支的名称。我花了很多时间浏览 dulwich 的文档,但找不到如何做到这一点。