我今天早上醒来,看了我的开发团队在BitBucket上的一个私有存储库的提交历史.我看到了这个:
匿名犯了fcde879
MERGE
将https://bitbucket.org/abc/xyz的分支"开发"合并到开发中
这有点不寻常.我的猜测是,这是从没有正确配置git的新机器推出的.不过,我不确定为什么这样做.在BitBucket上,它显示两个单独的哈希作为提交父项,但它没有其他提交的"查看原始提交"选项.
我检查了那个分支,拉了,并手动查看了日志.
sidious@DS-1:/path/to/repo$ git log -1 --format=raw
tree 2931d14f48e61eaf0bbe0660af5b5dd76c07f063
parent 6bb38dee681df7620ffa42b6790641a7873166f2
parent f59c82e19e3e79310a53e273bab78139c49ff063
author root <root@somemachine> 1437069530 +0000
committer root <root@somemachine> 1437069530 +0000
Merge branch 'develop' of https://bitbucket.org/abc/xyz into develop
Run Code Online (Sandbox Code Playgroud)
据我所知,6bb父级在开发分支上,而f59父级似乎来自不同的分支.很难说出发生了什么.
我搜索但找不到答案,我需要回到研究中,因此我在这里提出我的问题:为什么git将一个分支合并到自身?或者说,为什么这个命名法被用作提交消息?
我不知道这是怎么发生的。我对主题所做的一切似乎都不起作用。在重新启动 VS Code 之前,我选择了“Dark Modern”主题,并且 Python 文档字符串与其他字符串的颜色完全相同。重新启动后,仍然选择“黑暗现代”主题,但现在文档字符串是丑陋的深绿色。在主题之间切换不会恢复原始颜色。手动修改主题json文件没有任何作用,而且这种令人讨厌的颜色并不在任何主题文件中。禁用和/或重新启用扩展不会产生任何影响,但禁用 Python 扩展会从语法突出显示中删除多种颜色,但不会删除深绿色。是否使用 venv 没有任何影响。
知道发生了什么或如何解决这个问题吗?
编辑:我找到了罪魁祸首。这家伙决定只改变主题颜色。任务仍然是将其恢复到更改之前的状态。
编辑2:VS Code似乎没有办法区分块注释和文档字符串。在 Python 语言中,它们之间存在语义上的、非语法上的差异。在某种程度上,如果 VS Code 团队不更新他们处理这种语义差异的方式,这个问题是无法治愈的:它将错误地突出显示文档字符串并相同地阻止注释,因此答案是在错误的行为之间进行选择。
在Sublime Text 3中,当编写JavaScript时,键入"for"会触发插入两个可能的代码片段之一:
for (... {... (Improved Native For-Loop)
for (var i = Things.length - 1; i >= 0; i--) {
Things[i]
};
Run Code Online (Sandbox Code Playgroud)
和
for (...) {...}
for (var i = 0; i < Things.length; i++) {
Things[i]
};
Run Code Online (Sandbox Code Playgroud)
一段时间以来,已知for 循环的反向迭代具有更好的性能.但这样做意味着每个基于数组的操作都必须向后完成,这会导致代码的可读性降低.所有这些麻烦都只是为了在大多数情况下提高性能.
不幸的是," 改进的Native For-Loop "是第一个建议,并且可能导致一些令人烦恼的情况,当意外选择而不是正常的,可读的循环,不会混淆数组迭代的典型约定.
在我使用过的许多语言中,有一种方法可以在函数签名中包含可变数量的参数,例如,在 Go 中,您可以使用 来声明函数,func doSomething(args ...int)
并doSomething(2, 3, 4)
使用 Python 中的 或来调用它def do_something(*args)
,do_something(1, 2, 3)
等等。此外,还有一些语法传播/解包这些参数,例如在 Gothings = append(things, others...)
或 Python 中do_something_else(*args)
。
我想制作一个包装器,它接受格式字符串并将其和任意数量的参数传递给format t
. 由于format
需要可变数量的参数,我的猜测是这是一个语言功能,但我还没有找到任何关于如何做到这一点的解释。
我的代码无法正常工作,如下所示:
(defun printf (fstr vals)
(format t (concatenate 'string fstr "~%") vals))
Run Code Online (Sandbox Code Playgroud)
如果我使用需要 1 个值的格式字符串来调用它,它可以正常工作,但我不知道如何让它使用更多值。例如,(printf "~d is not ~a" 12 "13")
会导致错误“给 printf 的参数太多”。我还尝试了以下方法:
(defun printf (fstr &rest vals)
(format t (concatenate 'string fstr "~%") vals))
Run Code Online (Sandbox Code Playgroud)
然后该错误显示“此格式指令没有足够的参数”。很明显,这vals
是一个参数列表,但我不知道如何扩展它们以传递给format …