gitk:奇怪的历史树

2023-11-27

我正在将 svn 存储库移植到 git (使用 svn2githttps://www.negativetwenty.net/redmine/projects/show/svn2git)并且由于 svn 不跟踪合并,我需要手动编辑 .git/info/grafts 。为此,我启动 gitk,在提交消息中搜索术语“合并”,验证合并提交是否具有正确的祖先并相应地填充 .git/info/grafts。

我遇到的问题是 gitk 似乎与“master”分支混淆了。它经常显示 master 从一个分支“分叉”并合并到一个分支后记中,而实际上恰恰相反。

为什么它无法理解master应该尽可能“线性”并且应该从它分叉出分支,而不是相反?是 gitk 问题还是 git repo 的历史不完整?似乎“git log --pretty=oneline --graph”能够显示正确的行为,所以我认为这可能是 gitk 问题。

我也尝试过 giggle 和 qgit,但都有各自的问题。我发现 giggle 的树很难理解(例如,合并是水平的,而在 qgit 和 gitk 中它们是倾斜的......)并且 qgit 似乎没有显示一些提交(在 svn 中创建分支的提交在两者中都显示为 git 提交) “git log --pretty=oneline --graph”和 gitk,但不在 qgit 或 giggle 中)。

请注意,我在测试中使用“gitk --all”。

所以我的问题是: -如何强制 gitk 显示 master 尽可能线性?理想情况下,“左对齐”,分支是从中分叉出来的,而不是相反。 “git log --pretty=oneline --graph” 似乎是以正确的方式做的,但是 gitk 呢?

Thanks!

编辑:屏幕截图链接已失效。之前说过:

我已经上传了不同工具的屏幕截图: git 日志、gitk、咯咯笑、qgit

查看“git log”如何显示分支正在合并到主干中,而gitk 显示主干正在合并到分支中。 Giggle 和 qgit 显示右侧 合并,但他们经常删除一些提交(创建分支),所以它是 手动编辑 .git/info/grafts 文件真的很难。


查看“git log”如何显示正在合并到主干的分支,而 gitk 显示正在合并到分支的主干。

这是因为 gitk 可以自由地对父级重新排序——就像许多其他工具一样。最左边的父级并不总是第一个父级。通常,工具会将父母放在有空间的地方。它最终提供了更丰富的视图。比较:

  • http://i53.tinypic.com/29lfyti.png- git log 使“master”缠绕在“nucrypt2”分支上,以便第 X 个(X>=2)父级始终位于合并的右侧
  • http://i52.tinypic.com/sc7r5v.png- git-forest,默认
  • http://i51.tinypic.com/28iatjd.png- 相同,禁用合并快捷方式搜索

我发现 git-log 的图表不太符合人体工程学——它需要更多的空行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gitk:奇怪的历史树 的相关文章

随机推荐

  • 错误:[错误号 10053]

    如果我在 Flask 上编码 有时会出现以下错误 Traceback most recent call last File C Python27 lib SocketServer py line 284 in handle request
  • 在 SQL 中选择 CHAR 而不是 VARCHAR 的用例有哪些?

    我意识到如果我的所有值都是固定宽度的 则建议使用 CHAR 但是 那又怎样 为了安全起见 为什么不为所有文本字段选择 VARCHAR 一般规则是选择CHAR如果所有行都接近相同长度 Pick VARCHAR or NVARCHAR 当 的时
  • 为什么我不能为 ThreadStart 使用/强制转换 Action?

    两者都是委托并且具有相同的签名 但我不能使用 Action 作为 ThreadStart Why Action doIt doIt gt MyMethod test Thread t t new Thread doIt t Start 但这
  • 节点串行端口在 alpine linux 上失败

    我正在开发一个使用node serialport的小型nodejs nodejs v4 3 项目https github com voodootikigod node serialport 我把它包装在一个 docker 镜像中 首先 我成
  • 如何在模型中验证来自控制器的数据

    因此 我有一些从控制器中的另一个 Rails 应用程序中获取的数据 我们将其称为 ExampleController 我想在允许向导进入下一步之前验证它是否存在于我的模型中 但我不太清楚如何实现我应该这样做 我知道直接从控制器获取这些数据到
  • TensorFlow 检查点保存和读取

    我有一个基于 TensorFlow 的神经网络和一组变量 训练函数是这样的 def train load True step Defining the neural network is skipped here train step tf
  • 取消所有Javascript setTimeout 和 setInterval

    在给定的秒数后取消所有 JS setTimeout setInterval 和 requestAnimationFrame 的正确方法是什么 编辑 抱歉 我应该解释更多 该代码来自数据库或某些 API 因此我无法跟踪超时 raf 或间隔 I
  • 是否可以以编程方式隐藏停靠栏图标

    是否可以根据需要以编程方式隐藏停靠栏图标 我知道在 plist 中定义属性 应用程序是代理 UIElement 的一种方法 我们将可可应用程序作为用户代理 但这会导致永久隐藏停靠图标 我正在寻找一种可以控制停靠图标可见性的方法 任何想法 有
  • 如何在重新加载数据表时传递参数

    我有一个像这样初始化的数据表 mytable DataTable ajax url url getTableData dataSrc sortClasses false paging false scrollY 300 columns co
  • 如何在 Laravel 5.1 中实现“记住我”?

    如何在 Laravel 5 1 中实现记住我功能 谁能给我举个例子吗 Laravel 身份验证优惠记住账号开箱即用的功能 为了使用它 你需要做两件事 add 记住令牌用户表中的列 这是存储令牌的位置 pass true作为第二个参数验证 尝
  • Kivy 不工作(错误:无法找到任何有价值的 Window 提供程序。)

    我收到此错误 无法找到任何有价值的 Window 提供程序 kivy 继承了 完整 错误 INFO Logger Record log in C Users Victor kivy logs kivy 17 05 27 10 txt INF
  • 设备 emulator-5554 未获得授权。 (安卓)

    我遇到过类似的问题 emulator 5554 未经授权使用 adb 设备 1 基本上 我正在尝试使用 Windows 10 在 Android 虚拟设备上进行一些 flutter 编程 尽管我不认为这个问题是 flutter 特有的 启动
  • Git for Windows(64 位)中的 Maven classworlds.launcher.Launcher 错误

    我已经在 Git Bash 64 位 上使用 Maven 几个月了 突然它停止工作 并且现在在任何 Maven 命令上生成此错误 myuser mypc MINGW64 master mvn v Error Could not find o
  • SHA256 的“纯粹”方案实现(R5RS)?

    我可以在Scheme中使用SHA256 使用外部库 Java C或系统相关 或使用特定的Scheme实现 例如Chicken 但我想知道是否有一个 纯粹的 scheme实现 我今天写了一个实现 唉 R5RS 既没有字节向量也没有二进制 I
  • 为什么 WPF 中没有视觉继承?

    在 Windows 窗体中 让一个窗口继承另一个窗口有时很有用 但在WPF中 这是不允许的 为什么 WPF 窗口没有视觉继承 WPF 不支持视觉继承的原因是表单设计是通过标记 xaml 实现的 而不是使用代码隐藏来生成布局的 winform
  • xmllint DTD 验证语法

    尝试验证 XML 文档 但是 xmllint 坚持将选项作为文件读取 因此我收到 FileNotFound 异常 只是为了确认 我的 xmllint exe 与我的 XML 文件位于同一文件夹中 我在CMD中找到该目录并输入命令 xmlli
  • 在线共享和保护 Excel 文档(使用 Powerpivot),无需 Sharepoint 和 Power BI?

    我的一位客户制作了这份令人难以置信 而且非常巨大 的 Excel 文档 其中包含许多数据源 工作表 Powerpivot 表格 图表等 非常棒的工作 他希望与授权人员共享 但保护他有价值的内容 也称为数据源和文档 逻辑 例如 用户可以使用过
  • IdentityServer4 Net Core 2不调用自定义iProfileService

    我已将 Identity Server 项目升级到 Net Core 2 现在我无法调用 iProfileService 对象来添加自定义用户声明 它在 Net Core 1 中确实有效 Startup cs的ConfigureServic
  • 如何让 C 程序等待(在 Linux 上)?

    如何让 C 程序等待 在 Linux 上 我需要使用等待与 MPI 我需要 C 代码 如果要等待 MPI 请求 请使用 MPI Wait http www manpagez com man 3 MPI Wait 如果您想等待一定时间 请使用
  • gitk:奇怪的历史树

    我正在将 svn 存储库移植到 git 使用 svn2githttps www negativetwenty net redmine projects show svn2git 并且由于 svn 不跟踪合并 我需要手动编辑 git info