2010-05-13

请提供Fuck-All选项

Views: 32408 | 5 Comments

由于时间宝贵, 我们不可能弄清每一项东西. 所以, 当我们拿到一个新事物时, 我们会把它定义为某一个已经熟悉的事物的替代品, 用旧的方法来操作新的事物. 如果新事物的操作方法和旧事物相似(接口相同), 或者只经过非常符合大众逻辑的演绎(方法添加了默认参数), 那么, 我们就称这个新事物的学习成本很低.

我开始使用 SVN, 要进行一次版本合并操作. 在操作之前我知道, 肯定会有大量的冲突, 比如至少有 20 个文件有冲突, 而且这些冲突不是由我一个人产生. 所以, 我希望把所有的冲突都列出来, 然后再由各个人手工解决冲突. 所以, 我执行:

svn merge https://xxx...

当文件 file1 出现冲突时, 提示输入:

Conflict discovered in 'file1'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options:

我输入了 p, 然后 file2 出现冲突, 又提示输入. ...

我突然觉得, 难道要让我输入一百次 p 吗? 能不能有一个选项 p-to-all? 比如我们在 Windows 下复制文件, 要覆盖时会提示(大概意思):"Override file 'abc.txt'? [Y]Yes, [N]No, [YA]Yes-to-All, [NA]No-to-All".

虽然很简单, 但我非常愤怒, 终于找到解决方法, 那就是在出现这个提示前, 在执行命令的时候加一个选项:

svn merge --accept postpone https://xxx...

然后, 我意识到并确认了, cp, rm 等 Linux 命令在交互模式下(-i)都是同样的逻辑, 只能一个一个文件地确认, 不提供批量方法. 最后, 我不得不声明: Yet Another Linux Rule - Fuck-One-Only, No-Fuck-All.

但是, 这确实是一个非常狗屎的逻辑!

Related posts:

  1. 我要转到 Windows 平台了
  2. 转到 Windows 平台的事需要考虑
  3. 不用 git rebase 合并 commit 历史
  4. git 常用操作
  5. SSDB常规升级-更新到leveldb-1.14.0, Windows安装包
Posted by ideawu at 2010-05-13 13:27:55 Tags: ,

5 Responses to "请提供Fuck-All选项"

Leave a Comment