发布新日志

  • svn命令

    2008-11-10 16:45:32

    svn在linux下的使用(svn命令)

    刚来公司时同事将电脑安装好了才给我使用,很多东西都不是我亲自动手,这几天我们换了新的电脑很多东西都是我自己动手实现,不容易啊,在使用linux下的SVN时遇到些问题,从网上拷来一篇文章学习了不少东西,保留下来以后好看。

    svnlinux下的使用(svn命令)

    1、将文件checkout到本地目录

    svn checkout pathpath是服务器上的目录)

    例如:svn checkout svn://192.168.1.1/pro/domain

    简写:svn co

    2、往版本库中添加新的文件

      svn add file

    例如:svn add test.php(添加test.php)

    svn add *.php(添加当前目录下所有的php文件)

    3、将改动的文件提交到版本库

      svn commit -m “LogMessage“ [-N] [–no-unlock] PATH (如果选择了保持锁,就使用–no-unlock开关)

    例如:svn commit -m “add test file for my test“ test.php

    简写:svn ci

    4、加锁/解锁

      svn lock -m “LockMessage“ [–force] PATH

    例如:svn lock -m “lock test file“ test.php

    svn unlock PATH

    5、更新到某个版本

      svn update -r m path

    例如:

    svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

    svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)

    svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

    简写:svn up

    6、查看文件或者目录状态

      1svn status path (目录下的文件和子目录的状态,正常状态不显示)

    ?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】

    2svn status -v path (显示文件和子目录状态)

    第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

    注:svn statussvn diff svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。

    简写:svn st

    7、删除文件

      svn delete path -m “delete test fle“

    例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”

    或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种

    简写:svn (del, remove, rm)

    8、查看日志

      svn log path

    例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化

    9、查看文件详细信息

      svn info path

    例如:svn info test.php

    10、比较差异

      svn diff path(将修改的文件与基础版本比较)

    例如:svn diff test.php

    svn diff -r m:n path(对版本m和版本n比较差异)

    例如:svn diff -r 200:201 test.php

    简写:svn di

    11、将两个版本之间的差异合并到当前文件

      svn merge -r m:n path

    例如:svn merge -r 200:205 test.php(将版本200205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

    12SVN 帮助

      svn help

    svn help ci

    ——————————————————————————

    以上是常用命令,下面写几个不经常用的

    ——————————————————————————

    13、版本库下的文件和目录列表

      svn list path

    显示path目录下的所有属于版本库的文件和目录

    简写:svn ls

    14、创建纳入版本控制下的新目录

    svn mkdir: 创建纳入版本控制下的新目录。

    用法: 1mkdir PATH…

    2mkdir URL…

    创建版本控制的目录。

    1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增

    调度,以待下一次的提交。

    2、每个以URL指定的目录,都会透过立即提交于仓库中创建。

    在这两个情况下,所有的中间目录都必须事先存在。

    15、恢复本地修改

    svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)revert:

    用法: revert PATH…

    注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复

    被删除的目录

    16、代码库URL变更

    svn switch (sw): 更新工作副本至不同的URL

    用法: 1switch URL [PATH]

    2switch –relocate FROM TO [PATH…]

    1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将

    服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的

    方法。

    2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动

    (比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用

    这个命令更新工作副本与仓库的对应关系。

    17、解决冲突

    svn resolved: 移除工作副本的目录或文件的冲突状态。

    用法: resolved PATH…

    注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的

    相关文件,然后让 PATH 可以再次提交。

    18、输出指定文件或URL的内容。

    svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。

    svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

     

  • GreenAMP 和 BugFree

    2008-08-08 11:06:35

    008-07-31 11:13:49

    ===== 下载 GreenAMP BugFree =====
    1.
    http://chin.blogchina.com/604819.html 下载 GreenAMP Standard Build 050123 (4,732,671 字节)
    2.
    http://bugfree.1zsoft.com/ 下载 BugFree Ver 0.4 (479,572 字节)

    =================================================================

    ===== 解压缩 GreenAMP BugFree =====
    3.
    GreenAMP.rar解压缩到 D:\GreenAMP
    4.
    BugFree0.4.zip解压缩到 D:\GreenAMP\Apache\htdocs

    =================================================================

    ===== 配置Apache BugFree =====
    5.
    修改 D:\GreenAMP\Apache\conf \httpd.conf文件中

          Listen 80—>Listen 90

    目的是为了apache其他http)端口不冲突
           ServerName localhost
    à
       
    为:
           ServerName
    15.15.55.15:90
       
    这里 15.15.55.15 是我本机的IP地址。这样做的目的是让局域网中的其他人可以访问

    6. 修改D:\GreenAMP\Apache\htdocs\Include \Config.inc.Sample.php的文件名为àConfig.inc.php

    =================================================================

    =====安装GreenAMP=====

       KISS 0.2各组件的版本:

      Apache 2.2.2 with mod_ssl/2.2.0 mod_php5/5.1.1 OpenSSL/0.9.8a

      PHP 5.1.4 with(mbstring,soap,gd2,pdo,sqlite,firebird,mysql,mysqli,postgresql)

      Firebird 1.5.3.4870

      MySQL 5.0.21

      PostgreSQL 8.1.3

      Zend Optimizer 3.0.0

      Zend Debugger 5.1.0

    ----

      1.如何开始?

     D:\GreenAMP\ 双击menu.bat,程序会根据你的操作系统类型(Win9x,WinNT)产生相应的脚本.

      Win9x平台上生成 程序名称_start/stop.bat这样的文件,因为Win9x没有服务的概念,只能在命令提示行(理解为DOS窗口好了)下运行.

      WinNT平台上生成 服务名称_service_install/uninstall.bat这样的文件,注册成服务,用户可以根据自己的需要注册相应的服务.比如说,如果只需要Apache,就点击apache2_services_install.bat,Apache就会自动注册为服务并启动.

     

      先决条件:

      (a).KISS所在的目录应该尽量简洁,不要有中文,也最好不要有空格,比如放在D:\kiss,E:\greenamp,X:\myserver这些目录是值得推荐的做法.

      (b).确保您的机器上没有安装其他版本的KISS(或者KISS的组件,Apache,MySQL,PostgreSQL,Firebird),因为他们的存在会造成服务名,共享库,配置文件和端口冲突,除非您能熟练的配置和管理这些共存的不同版本.也不要有微软IIS服务器(它会和Apache80端口)

      Kiss的各个组件的默认端口:

      Apache:80

      MySQL:3306

      PostgreSQL:5432

      Firebird:3050

     

      2.menu.bat脚本干了什么

      menu.bat调用init.php初始化kiss套件,主要做这些事情:(a)修改Apache,MySQL,PHP等配置文件中关于路径的选项 (b)如果你使用WinNT平台,程序会自动创建一个postgres用户,如果这个用户已经存在,删除之然后创建 (c)KISS根目录生成相应的批处理脚本.

       除此之外,不再做其他的事情,不向Windows系统目录复制DLL文件,不写注册表.

     

      由于PostgreSQL数据库必须以非管理员权限的用户运行,且必须被安装在NTFS系统上,以免给系统安全造成危害,因此,Win9x下不能使用这个组件;WinNT,需要创建一个postgres帐户来运行这个程序,因此,当您执行menu.bat的时候,就自动创建了postgres用户——即使您并不打算使用这个组件,密码是和当前系统时间有关的一个MD5字串,以免被恶意的人或者程序猜测到,密码的明文在PostgreSQL_service_install.bat文件里面有,因为注册服务器的时候需要登陆,您可以自行修改它.

     

      3.注册了服务之后如何删除

      每个服务注册脚本都有一个对应的卸载脚本,注册脚本叫 服务名称_service_install.bat(例如Apache2_service_install.bat),对应的卸载脚本是Apache2_service_uninstall.bat,只要双击那个卸载的脚本,就会从您的系统中取消这个服务.

     

      Kiss 0.2Apache2.2.2有个bug,执行Apache2_service_uninstall.bat,会在net stop apache2的时候出现一个错误,跳出两次Windows的发送错误报告的窗口,这个经过我反复测试,暂时无法解决.您可以不用理会它,因为卸载脚本还会正常执行,Apache2服务会被停止和卸载.

     

      4.如何卸载整个KISS

      很简单,备份您的数据,点击卸载脚本卸载您注册的服务,然后删除KISS目录就行了.

     

     

      TODO

      ----

      计划中的KISS 0.3

      (a).增加Perl,Python,Java等语言的支持.

      (b).增加一些成熟流行的开源代码包,比如PHPphpmyadmin,adodb

      (c).免费的第三方数据库管理软件,比如EMS家族的MySQL,Firebird,PostgreSQL manager

     

     

    =================================================================

    =====启动bugfree=====

  • 使用存储过程再数据库中批量新建数据

    2008-05-12 17:22:38

    create or replace procedure createtable_t_new1(start_num integer,step integer)
    as
      i integer:=start_num;
    begin
         loop
             i:=i+step;
             execute immediate 'create table a1'||to_char(lpad(i,10,'0'))|| ' AS SELECT * FROM example_table '; 
         exit when i>20*start_num;
             
         end loop;
    end;

    根据步长,使用存储过程批量建表

    create or replace procedure createtable_t_new1(start_num integer,step integer)
    as

    begin
         loop

             for i in 1..10 loop
                 insert into 'table_name'
                        select aa.nextval,'neusoft','softcompany' from dual; 
                 
         end loop;
    end;

    使用序列作主键,添加记录

     

     

  • 简单杀oracle进程

    2008-04-28 17:24:07

    操作oracle时经常遇到数据库死锁的情况,下面就教大家快速简单的杀掉死锁进程。

    1,查谁被锁住了

    SELECT * FROM V$DB_OBJECT_CACHE  where ōwner ='所属用户名'

    将会看到改用户所有的操作和操作的表

    2.通过他的name字段去查改进程的sid

    SELECT * FROM V$ACCESS WHERE ōwner ='所属用户名' and name='操作名称或者表名'

    3.根据查到sid去查serial#,spid

    SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='上一部查到的sid'

    SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';

    4.杀进程

    1,oracle

    ALTER SYSTEM KILL SESSION 'sid,serial#;

    2,操作系统进程

    KILL -9 刚才查出的SPID

    简单吧