我们正在使用Pentaho CTools库构建一个网站,该库具有一个图形仪表板编辑器,可以为仪表板的一部分写出JSON格式的文件.
我想在签入git之前对这些文件应用转换,以便按键对它们进行排序,然后按某些键的值进行排序.目的是使diff变得更容易,因为编辑器习惯重新排列所有json字段.
例如,我们可能会有这样的事情:
{
"components": {
"rows": [
{
"id": "CHARTS",
"name": "Charts",
"parent": "UnIqEiD",
"properties": [
{
"name": "Group",
"type": "Label",
"value": "Charts"
}
],
"type": "Label",
"typeDesc": "<i>Group</i>"
},
{
"id": "kjalajsdjf",
"meta_cdwSupport": "true",
"parent": "CHARTS",
"properties": [
{
"name": "name",
"type": "Id",
"value": "Value1"
},
{
"name": "title",
"type": "String",
"value": "Value2"
},
{
"name": "listeners",
"type": "Listeners",
"value": "[]"
},
...
Run Code Online (Sandbox Code Playgroud)
我们能够jq --sort-keys
(http://stedolan.github.io/jq/)对所有键进行排序,但我很难找到如何使用该sort_by
函数然后通过某些键的值对某些特定元素进行排序(所以,在上面的例子中,例如排序properties.name
.任何想法?
我们有一个项目,主要是通过复制/粘贴方法分解.但是回购之间仍然存在重大的重叠.
是否可以追溯性地将此fork标记为github的fork,以便比较和pull请求等函数能做正确的事情?
注意:我尝试了下面的"hack",重新分叉,克隆fork,复制"forked"内容,然后git add/commit/push.但是,原始"fork"中的文件历史记录丢失了,并且分支不会过来.