May 13

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

我开始使用 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. Linus又骂人stupid
  4. Web设计与开发服务
  5. Chrome浏览器必装的插件

Written by ideawu at 2010-05-13 13:27:55 | Views: 6136 | tags: ,

5 Responses to “请提供Fuck-All选项”

  1. 1. liruqi Says:

    命令行下做svn 合并操作很麻烦。基本上之在win下做合并。而且分支合并是,不用merge,手工合并。

  2. 2. liruqi Says:

    分支合并主干时,不用merge,手工合并。

  3. 3. ideawu Says:

    liruqi, 能否讲下如何手工合并?

  4. 4. dd Says:

    为啥不用客户端。。。 想起之前公司用的cvs,一直用命令行,感觉快捷,后来换了客户端才感觉到什么是真正的快捷。。。 程序员别太执拗了。

  5. 5. clowwindy Says:

    yes|rm -i *

Pages:

Leave a Reply

必须登录, 或者浏览器开启JavaScript支持才可以评论!


网站空间,免费试用