小编d5v*_*5ve的帖子

当我的当前目录不在存储库中时,我可以对存储库中的文件执行git操作(添加/ diff/commit)

使用svn,我能够在结帐时对文件运行命令,而不必先cd进入该结账.例如:

# Located in /tmp, running svn operation on /home/d5ve/checkout
d5ve@host:/tmp> svn add /home/d5ve/checkout/myfile.txt
d5ve@host:/tmp> svn diff /home/d5ve/checkout/myfile.txt
d5ve@host:/tmp> svn commit /home/d5ve/checkout/myfile.txt
Run Code Online (Sandbox Code Playgroud)

当我使用git尝试此工作流程时,出现错误:

# Located in /tmp, attempting git operation on /home/d5ve/checkout2
d5ve@host:/tmp> git add /home/d5ve/checkout2/myfile.txt
fatal: Not a git repository (or any of the parent directories): .git
Run Code Online (Sandbox Code Playgroud)

我尝试过使用--git-dir--work-tree标志,但这似乎也失败了.

任何建议git人?我经常使用这个工作流程,并且在使用git时非常想念它.

更新2016目前正确的答案是使用-Cgit标志,这是在2013年版本1.8.5中引入的.请参阅/sf/answers/2512949281/

更新:基于下面的lunaryorn答案,我创建了一个简单的perl脚本,它从文件路径中计算出.git目录的位置,并为命令设置GIT_WORK_TREE和GIT_DIR环境变量.

请查看:http://github.com/d5ve/rgit

用法:rgit COMMAND [ARGS]

基本上只需在命令中用rgit替换git,就可以从存储库外部运行命令.

cd /tmp    
rgit diff /home/d5ve/checkout1 …
Run Code Online (Sandbox Code Playgroud)

git

13
推荐指数
1
解决办法
2564
查看次数

我可以使用iptables --delete命令删除多个匹配规则

iptables --append(-A)命令允许您添加多个相同的规则,并且您似乎必须运行相同数量的--delete(-D)命令才能再次删除它们.

iptables联机帮助页说--delete命令可以从选定的链中删除一个或多个规则.如何在单个操作中使用--delete命令删除所有匹配的规则?

在一个脚本中,我可以循环调用--delete直到我获得非零退出状态,但这看起来很苛刻.

$ # Add two identical rules.
$ /sbin/iptables --append OUTPUT --protocol tcp --destination example.com --jump DROP
$ /sbin/iptables --append OUTPUT --protocol tcp --destination example.com --jump DROP
$ /sbin/iptables -L OUTPUT -v
Chain OUTPUT (policy ACCEPT 6 packets, 780 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       tcp  --  any    any     anywhere             93.184.216.119
    0     0 DROP       tcp  --  any    any     anywhere             93.184.216.119

$ # Delete a single rule - can …
Run Code Online (Sandbox Code Playgroud)

linux iptables

7
推荐指数
1
解决办法
1869
查看次数

perl DBIx::Class 对表上的所有搜索都有一个默认过滤器

我有一堆由dbicdump / DBIx::Class::Schema::Loader从我的数据库模式创建的 DBIx::Class Result 类

我需要向is_deleted其中一个表添加一个布尔列,并过滤掉所有现有搜索和联接中已删除的记录。

不幸的是,在庞大的 perl 应用程序中有 30 或 40 个直接使用相关表的地方,并且至少有相同数量的通过prefetchjoin属性加入它的地方search()。手动更改它们是可能的,但非常耗时。

有没有办法向来自或来自特定表的WHERE所有查询添加默认子句?SELECTJOIN

我正在通过某种方式能够调用resultset('MyTable')->search({},{})WHERE is_deleted = 0添加到所有查询中。加上is_deleted = 0使用时应用相同的过滤器prefetch => [qw(my_table)],

perl dbix-class

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

标签 统计

dbix-class ×1

git ×1

iptables ×1

linux ×1

perl ×1