在处理多个(开源)项目时,多个版本控制系统开始出现问题.虽然他们分享常见的操作,但我经常通过键入hg add而不是git add来犯错误.
我记得前一段时间看到项目通过在shell中提供基本命令commit/ci add等,以统一的方式访问不同的源代码控制软件.根据存储库,它将依次调用hg add或git add等.
我见过Amp:http://amp.carboni.ca/(似乎是在ATM上)其他任何类似的脚本?
在ruby中,有一个非常常见的习惯用法来检查当前文件是否为"main"文件:
if __FILE__ == $0
# do something here (usually run unit tests)
end
Run Code Online (Sandbox Code Playgroud)
我想在阅读gcc文档之后在C中做类似的事情我认为它应该像这样工作:
#if __FILE__ == __BASE_FILE__
// Do stuff
#endif
Run Code Online (Sandbox Code Playgroud)
唯一的问题是在我尝试这个之后:
$ gcc src/bitmap_index.c -std=c99 -lm && ./a.out
src/bitmap_index.c:173:1: error: token ""src/bitmap_index.c"" is not valid in preprocessor expressions
Run Code Online (Sandbox Code Playgroud)
我使用#if错了吗?
作为未来客人的总结:
我的产品桌很大.我需要以非常高的偏移量选择几种产品(例如下面的例子).关于索引和性能的Postgresql手册建议在ORDER BY +最终条件使用的列上创建索引.一切都是桃子,没有使用.但对于高偏移值,LIMIT非常昂贵.任何人都知道这可能是什么原因?
以下查询可以运行几分钟.
Indexes:
"product_slugs_pkey" PRIMARY KEY, btree (id)
"index_for_listing_by_default_active" btree (priority DESC, name, active)
"index_for_listing_by_name_active" btree (name, active)
"index_for_listing_by_price_active" btree (master_price, active)
"product_slugs_product_id" btree (product_id)
EXPLAIN SELECT * FROM "product_slugs" WHERE ("product_slugs"."active" = 1) ORDER BY product_slugs.name ASC LIMIT 10 OFFSET 14859;
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------
Limit (cost=26571.55..26589.43 rows=10 width=1433)
-> Index Scan using index_for_listing_by_name_active on product_slugs (cost=0.00..290770.61 rows=162601 width=1433)
Index Cond: (active = 1)
(3 rows)
Run Code Online (Sandbox Code Playgroud)