如果我touch在git repo中跟踪文件并运行git diff-index HEAD,它将打印输出并M指示文件已被修改.例如,
$ touch foo
$ git diff-index HEAD
:100644 100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0000000000000000000000000000000000000000 M foo
Run Code Online (Sandbox Code Playgroud)
我不确定这是否有意义,但这不是问题.问题是,如果我运行git diff HEAD或为什么输出会改变(没有差异)git status?
$ touch foo
$ git diff-index HEAD
:100644 100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0000000000000000000000000000000000000000 M foo
$ git diff # no output
$ git diff-index HEAD # no output
Run Code Online (Sandbox Code Playgroud)
我希望结果,无论它是什么,在不应该改变任何东西的命令之间保持不变.
标题已经暗示了这个问题,那么是什么阻止了此存储库中示例程序的执行https://github.com/dvdhrm/docs/tree/master/drm-howto
这是一个简单的程序,显示了 KMS 的运行情况,所以我下载了它,编译了它并运行了它。这是输出:
michael@lord:~/Downloads/docs/drm-howto$ sudo ./modeset
[sudo] password for michael:
using card '/dev/dri/card0'
mode for connector 59 is 1920x1080
ignoring unused connector 68
ignoring unused connector 71
ignoring unused connector 75
cannot set CRTC for connector 59 (13): Permission denied
exiting
Run Code Online (Sandbox Code Playgroud)
另请注意,我的计算机上正在运行 X11 会话。X 似乎已经在使用该设备/dev/dri/card0并阻止所有其他程序使用该设备。
这是我的视频卡:
michael@lord:~/Downloads/docs/drm-howto$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
Run Code Online (Sandbox Code Playgroud)
我还添加i915.modeset=1并/etc/initramfs-tools/modules重建了它,sudo update-initramfs -u以便它从我的内核内部而不是从 xorg 端加载驱动程序。
还有一种可能是我的驱动程序不支持 KMS,但lspci …
给出如下列表:
[a, SEP, b, c, SEP, SEP, d]
Run Code Online (Sandbox Code Playgroud)
如何将其拆分为子列表列表:
[[a], [b, c], [], [d]]
Run Code Online (Sandbox Code Playgroud)
实际上,我需要一个等效的str.split()列表.我可以把一些东西混在一起,但我似乎无法想出任何整洁和/或pythonic的东西.
我从迭代器获得输入,因此工作的生成器也是可以接受的.
更多例子:
[a, SEP, SEP, SEP] -> [[a], [], [], []]
[a, b, c] -> [[a, b, c]]
[SEP] -> [[], []]
Run Code Online (Sandbox Code Playgroud)