小编Leo*_*Leo的帖子

git log -all 显示使用过滤器分支删除的提交

要删除我的存储库历史记录中不是“my_dir/”的所有内容,我使用了:

git filter-branch --prune-empty --subdirectory-filter my_dir/  --prune-empty --tag-name-filter cat -- --all
git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d;
git reflog expire --expire=now --all;
git gc --prune=now;
Run Code Online (Sandbox Code Playgroud)

现在,使用:

git log
Run Code Online (Sandbox Code Playgroud)

一切看起来都很好:日志仅显示包含“my_dir”中文件的提交。

但:

git log --all
Run Code Online (Sandbox Code Playgroud)

仍然显示一切。事实上,执行另一个过滤分支(以删除 my_dir 中的一些其他 .pyc 文件)将找到(并删除)旧目录中的所有 .pyc 文件。

看来 --subdirectory-filter 并没有真正删除提交......它们仍然存在。

我缺少什么?

编辑:

子目录过滤器“仅查看涉及给定子目录的历史记录”。所以也许它不会删除所有其他提交,而只是重写那些触及该目录的提交,并以某种方式为其他提交留下“孤儿”???

git

5
推荐指数
1
解决办法
802
查看次数

postgresql"在事务中空闲",授予所有锁定

一个小表(700行)上的一个非常简单的删除(通过键),然后保持"在事务中空闲"几分钟(通常需要毫秒),即使所有锁被标记为"已授予".

我该怎么做才能找出导致它的原因?我正在使用这个选择:

  SELECT a.datname,
     c.relname,
     l.transactionid,
     l.mode,
     l.GRANTED,
     a.usename,
     a.waiting,
     a.query, 
     a.query_start,
     age(now(), a.query_start) AS "age", 
     a.pid 
FROM  pg_stat_activity a
 JOIN pg_locks         l ON l.pid = a.pid
 JOIN pg_class         c ON c.oid = l.relation
ORDER BY a.query_start;
Run Code Online (Sandbox Code Playgroud)

它显示了很多"RowExclusiveLock",但都被批准了...所以我看不出是什么导致了这种延迟的峰值.

sql postgresql locking

3
推荐指数
1
解决办法
4066
查看次数

标签 统计

git ×1

locking ×1

postgresql ×1

sql ×1