问题标签 [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 来做到这一点,它支持大多数 git 操作,但不支持孤儿标志。
在不实际使用该标志的情况下创建孤立分支的等效 Git 操作是什么?理想情况下,我想:
- 克隆回购
- 使用 repo 的内容创建一个新分支,但没有历史记录
- 将分支推送到仓库
这是可能的还是我需要创建一个空的新分支,克隆到一个单独的目录并将内容复制回来?
python - 我使用 --global-option 安装一个特定的包。如何将该包添加为 setup.py 中的依赖项?
我正在使用这个名为 Dulwich 的软件包。在开发时,我这样安装它:
我想将 dulwich 作为依赖项添加到我自己的包的 setup.py 文件中,但我不确定如何让它使用该纯标志。如果我的依赖项看起来像这样:
它会失败。我已经尝试了添加 --pure 和 --global-options 的所有变体,但它们都失败了,错误如下:
我应该如何正确将此包添加为依赖项?最终目标是我可以把我的包放在 PyPi 上,这样当有人跑的时候
pip install dulwich --global-option="--pure"
它也会自动运行相当于
python - 使用 SSH 使用 dulwich 进行克隆 - 让 dulwich 知道公钥(挂断异常)
我设法使用带有 HTTP url 的 dulwich 进行克隆,但是当我尝试使用 SSH 进行克隆时,我得到一个“HangupException”。dulwich 是否有可能无法访问 ~/.ssh 文件夹中的公钥,然后无法进行 SSH 连接?这需要在德威配置中添加吗?这是我得到的错误:
python - Hg Git Pull 导致打开文件过多错误
我有一个跟踪 git 存储库的 Mercurial 存储库。它在 Windows 10 上运行良好。现在我将它作为目录移动到 Mac,然后运行hg reset -Ca
只是为了清理它。现在我试图运行hg pull
它会导致这样的错误:
我查了一下,看起来我有最新版本的hg-git
和dulwich
Mercurial 也是最新的
我检查了 Windows 上的 Mercurial 版本,4.4.2
如果这很重要。我想知道是否有人遇到过这样的问题,并且可能有解决方法或修复方法。
python - git 存储库数据结构是否使用规范编码?
我正在使用 dulwich(一个 Python 库)来访问 git 存储库。当我get_object
用来检索提交时,它有许多属性。其中之一是author
。当我检索这个属性时,我得到bytes
了,所以这个属性是一个未知的编码。
有没有我可以安全假设的编码?git 在存储之前是否会将所有元数据转换为 utf-8?如果没有,我怎么知道使用哪种编码来解码字节?
python - Dulwich 备忘单:如何重现“git ls-files”?
亲爱的社区成员,
我正在开发一个代码分析系统,并想用 Dulwich 模块替换对 CLI Git 应用程序的调用。作为第一步,我需要将“git ls-files”命令替换为 Dulwich 等效命令。我是通过以下方式做到的:
快速断言显示输出不同。可能是什么原因?
在@jelmer 的帮助下回答我自己的问题。问题的原因在于我评论的那一行。现在输出匹配。
git-log - 德威备忘单:如何重现“git log”?
亲爱的社区成员,
我正在开发一个代码分析系统,并想用 Dulwich 模块替换对 CLI Git 应用程序的调用。作为第二步,我需要将“git log”命令替换为 Dulwich 等效命令。
具体来说,我正在尝试重现以下命令:
必须类似于:
我的最终目标是获取与给定文件相关的 blob 列表(例如,用 SHA 表示)。
实现它的最佳方法是什么?
python - 与德威的分支机构合作(访问对象/结帐)
我对 Dulwich 有疑问(从 GitPython 切换到它,因为众所周知的 Windows 错误会在 .git 文件夹中打开文件)。
我正在尝试从当前打开的 repo 的另一个分支(上次提交的状态)获取文件。在 GitPython 中,这个任务可以很容易地解决:
但是我没有找到任何舒适的方式来处理德威的分支机构。
在写这个问题时,我发现了一个get_refs
方法,它返回包含所有 refs 的字典和它们指向的提交。现在我想我可以得到最后一次提交的 SHA,但是 refs 使用起来非常不友好——我需要使用这种形式来获得提交:
之后我可以通过这种方式获取我的文件:
是否有适当的(更“pythonic”/“gitonic”)方法来获取所需的文件版本,而无需完全检查分支?一些暂存/未暂存的文件可以在程序运行时存储在 repo 中,我想它们会中断结帐过程。
现在对我来说主要问题是需要将通常的分支名称“打包”为“refs/heads/”形式。
如果没有更准确的方法来获取这些信息 - 我希望我的问题将来可以帮助某人:)
Python:3.6.1
德威:0.19.6
git - 德威上演的一行代码更改显示每一行不同
我有一个单行更改的文件:git status
报告
这是diff
报告的变化
现在我进行更改:
如果我要求一份关于分阶段更改的报告,我会看到相同的单行更改:
现在我取消更改
我希望能够使用 Dulwich 来管理暂存和提交。所以在 Idle 之后reset
,我这样做:
之后,git status
将更改显示为阶段性,就像以前一样
但是,如果我现在发出一个git diff
命令,我会得到一个差异报告,其中显示文件的所有 1500 多行都已更改:
编辑:跟进@RomainVALERI 的有用评论,我尝试了这个命令
它报告一行更改。所以这是一个行尾问题。但我需要 Dulwich 操作可以与命令行操作互换。我如何告诉德威Repo.stage()
以这种方式处理行尾git add
?
我尝试使用porcelain.add()
而不是Repo.stage()
但这没有任何帮助。
python - 使用 dulwich 库获取当前 Git 分支名称
我正在尝试使用dulwich库获取 Git 存储库当前分支的名称。我花了很多时间浏览 dulwich 的文档,但找不到如何做到这一点。