通过shell命令一次性git checkout所有改动

一次性git checkout所有改动 git checkout|awk '{print $2}'|xargs git checkout git rm所有已删除文件 git checkout|awk '{if ( $1 == "D"){print $2}}'|xargs git rm 参考:一次向svn中增加所有新增文件 推荐图书:卓有成效的程序员

四月 25, 2012

Android源码开发中单个模块的编译自动化

# !/bin/sh . build/envsetup.sh lunch 1 case $1 in "pc") mmm packages/apps/Contacts/ find out -name Contacts.apk |xargs -t -i adb push {} system/app/ ;; "pp") mmm packages/providers/ContactsProvider find out -name ContactsProvider.apk |xargs -t -i adb push {} system/app/ ;; "ph") mmm packages/apps/Phone/ find out -name Phone.apk |xargs -t -i adb push {} system/app/ ;; "pf") mmm frameworks/base find out -name framework.jar |xargs -t -i adb push {} system/framework/ ;; "pm") mmm packages/apps/Mms/ find out -name Mms....

九月 2, 2011

[自动化]一次向svn中增加所有新增文件

以下摘自:《卓有成效的程序员》之自动化 我经常会一次往Subversion里添加一批文件。在使用命令行做这件事时,你必须指定所有想要添加的文件名。如果文件不多的话这还不算太糟糕,但如果你要添加20个文件,那就费事了。当然你也可以用通配符,但这样一来就可能匹配到已经在版本控制之下的文件(这不会有什么损害,只不过会输出一堆错误信息,可能会跟别的错误信息混淆)。为了解决这个问题,我写了一行简单的bash命令: svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add 表4.3详细解释了这一行命令。 我大概花了15分钟写出这条命令,然后用了它成百上千次。 然后我在一个博客中看到这样一个脚本: svn st|awk '{print $2}'|xargs svn add 乍看之下觉得更加精炼,仔细看下就会发现这个脚本没有区分文件状态。所以完善了以下这个脚本: svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add 这样,以后我可能使用这个脚本成百上千次。(当然这个脚本也没有考虑过滤掉不要添加的文件) 当你第三次做一件事情的时候,就应该考虑将其工具化,自动化! 推荐图书:卓有成效的程序员

八月 11, 2011