• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 297,  comments - 15,  trackbacks - 0
            CVS的常 用命令速查 手冊
            本文出自:http://www.linuxforum.net 作者:車東 chedong@bigfoot.com

            CVS環(huán)境初始 化:CVS環(huán) 境的搭建
            CVS的 日常使用:日常開發(fā)中最常用的CVS命令
            CVS的分支開發(fā):項(xiàng)目按照不同進(jìn)度和目標(biāo)并發(fā)進(jìn)行
            CVS的用戶認(rèn)證:通過SSH的遠(yuǎn)程用戶認(rèn)證,安全,簡單
            CVSWEB:CVS的WEB 訪問界面大大提高比較代碼修改的效率
            CVS TAG:將$Id$加入代碼注釋中,方便開發(fā)過程的跟蹤

            CVS環(huán)境初始化
            ===========

            環(huán)境設(shè)置:
            tcsh
            setenv CVSROOT /path/to/cvsroot
            bash
            CVSROOT=/path/to/cvsroot ; export CVSROOT

            初始化:
            cvs init

            項(xiàng)目首次導(dǎo)入
            cvs import -m "write some comments here" project_name vender_tag r_tag

            項(xiàng)目導(dǎo)出:將代碼從CVS庫里導(dǎo)出
            cvs checkout project_name

            CVS的日常使用
            =============

            確 認(rèn)修改:確認(rèn)自己的修改并寫入到CVS庫里
            cvs commit -m "write some comments here" file_name

            注 意:CVS的 很多動(dòng)作都是通過cvs commit進(jìn)行最后確認(rèn)并修改的,在確認(rèn)的前,還需
            要用戶填寫修改注釋,以幫助其他開發(fā)人員了解修改的原因。如果不用寫-m "comments"
            而直接確認(rèn)`cvs commit file_name` 的話,cvs會自動(dòng)調(diào)用系統(tǒng)缺省的文字編輯器(一
            般是 vi)要求你寫入注釋。
            注釋的質(zhì)量很重要:所以不僅必須要寫,而且必須寫一些比較有意義的內(nèi)容:以方便其
            他開發(fā)人員能夠很好的理解
            不好的注釋,很難讓其他的開發(fā)人員快速的理解:比如: -m "bug fixed" 甚至 -m ""
            好的注釋,甚至可以用中 文: -m "在用戶注冊過程中加入了Email地址校驗(yàn)"

            同步最近修改:開始工作前和將自己的工作導(dǎo)入到CVS庫里前都要 做一次:先同步 后修改
            cvs update -m "write some comments here" file_name

            注 意:不要使用項(xiàng)目首次導(dǎo)出后,以后就要用cvs update在導(dǎo)出的項(xiàng)目目錄下進(jìn)行同步了,
            而不是每次重新cvs checkout來同步文件了。如果導(dǎo)出后修改了文件,然后再次從導(dǎo)出的
            項(xiàng)目目錄的上一級cvs checkout proj等于是刪除了proj目錄然后重新導(dǎo)出,上次導(dǎo)出后
            的修改就全丟了。

            修改某個(gè)版本注釋:每次 只確認(rèn)一個(gè)文件到CVS庫 里是一個(gè)很好的習(xí)慣,但難免有時(shí)候忘
            了指定文件名,把多個(gè)文件以同樣注釋commit到CVS庫里了,以下命令可以允許你修改某
            個(gè)文件某個(gè)版本 的注釋:
            cvs admin -m 1.3:"write some comments here" file_name

            刪除文件:文件刪除后,比 如:rm file_name
            cvs rm file_name
            cvs ci -m "write some comments here"

            注意:很多cvs命令都有縮寫形式:commit=>ci update=>up checkout=>co remove=>rm

            添加文件 文件添加后,比如:touch new_file
            cvs add new_file
            cvs ci -m "write some comments here"

            添加目錄:
            cvs add dir_name

            查看修改歷史:cvs log file_name
            cvs history file_name

            查 看當(dāng)前文件不同版本的區(qū)別
            cvs diff -r1.3 -r1.5 file_name
            查看當(dāng)前文件(可能已經(jīng)修改了)和庫中相應(yīng) 文件的區(qū)別
            cvs diff file_name

            更方便的定位文件修改和比較版本區(qū)別的辦法請看后面的cvsweb使用

            正確的通過CVS恢復(fù)舊版本的方法:
            如果用cvs update -r1.2 file.name
            這 個(gè)命令是給 file.name加一個(gè)STICK TAG: "1.2" ,雖然你的本意只是想將它恢復(fù)
            到1.2版本
            正確的恢復(fù)版本的方法是:cvs update -p -r1.2 file_name >file_name
            如果不小心已經(jīng)加成STICK TAG的話:用cvs update -A 解決

            刪除,移動(dòng)目錄:
            最方便的方法是直接移動(dòng),刪除CVSROOT里相應(yīng)目錄:CVS所有項(xiàng)目都 是按目錄獨(dú)立的:
            好比一顆樹,其實(shí)砍下任意一枝都能獨(dú)立存活,對目錄修改后,要求其開發(fā)人員
            cvs checkout project_name 或者 cvs update -dP同步

            CVS Branch:多分支同步開發(fā)
            =========================

            確認(rèn)版本里程碑:多個(gè)文件各自版本號不一樣,項(xiàng)目到一定階段,可以給所有文件統(tǒng)一
            指定一個(gè)階段里程碑版本號,方便以后按照 這個(gè)階段里程碑版本號導(dǎo)出項(xiàng)目,同時(shí)也是
            項(xiàng)目的多個(gè)分支開發(fā)的基礎(chǔ)。
            cvs tag release_1_0

            在 開發(fā)proj的2.0版本的時(shí)候發(fā)現(xiàn)1.0有問題,但2.0又不敢用,則從release_1_0標(biāo)記出
            一個(gè)分支 release_1_0_patch
            cvs rtag -b -r release_1_0 release_1_0_patch proj

            一些人先在另外一個(gè)目錄下導(dǎo)出這個(gè)分支:解決1.0中的緊急問題,而其他人員2.0仍舊
            在項(xiàng)目的主干上開發(fā)
            cvs checkout -r release_1_0_patch

            在release_1_0_patch上修正錯(cuò)誤后,標(biāo)記一個(gè)1.0的 錯(cuò)誤修正版本號
            cvs tag release_1_0_patch_1

            如果2.0認(rèn)為這些錯(cuò)誤修改在2.0里也需要,就在 2.0的開發(fā)目錄下合并
            release_1_0_patch_1中的修改到當(dāng)前代碼中:
            cvs update -j release_1_0_patch_1

            CVS的遠(yuǎn)程認(rèn)證:通過SSH遠(yuǎn)程訪問CVS
            ================================

            使用cvs本身的遠(yuǎn)程認(rèn)證很麻煩,需要定義服務(wù)器和用戶名密碼等,而且不安全,因此
            和系統(tǒng)本地帳號結(jié)合并通過SSH進(jìn)行認(rèn)證 是比較好的辦法,通過在profile里設(shè)置一
            下內(nèi)容:
            CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH
            所有用戶都可以獲得CVS服務(wù)器的

            如果CVS所在服務(wù)器 的SSH端口不在缺省的22,或者和客戶端與服務(wù)器端SSH缺省端口
            不一致,則創(chuàng)建一個(gè)ssh_cvs腳本,有時(shí)候設(shè)置了:
            :ext:$USER@test.server.address#port:/path/to/cvsroot 仍然不行,比如有以下錯(cuò)誤信息:
            ssh: 133.133.33.33#3333: Name or service not known
            cvs [checkout aborted]: end of file from server (consult above messages if any)

            解決的方法是做一個(gè)標(biāo)本指定端口轉(zhuǎn)向(不能使用alias,會出找不到文件錯(cuò)誤):
            more ssh_cvs
            #!/usr/bin/sh
            ssh -p 34567 $*
            然后:chmod +x /usr/bin/ssh_cvs
            CVS_RSH=ssh_cvs; export CVS_RSH

            CVSWEB:提高程序員比較文件的效率
            ===============================

            CVSWEB 就是CVS的 WEB界面,可以大大提高程序員定位修改的效率:
            使用的樣例可以看:http://www.freebsd.org/cgi /cvsweb.cgi

            CVSWEB的下載:CVSWEB從最初的版本已經(jīng)演化出很多功能界面更豐富的版本,這個(gè)是我覺
            得 安裝設(shè)置比較方便的:
            http://www.spaghetti-code.de/software/linux/cvsweb/

            tar zxf cvsweb.tgz
            修改:cvsweb.cgi
            $config = $ENV{'CVSWEB_CONFIG'} || 'cvsweb.conf';

            修改:cvsweb.conf
            %CVSROOT = (
            'Development' => '/path/to/cvsroot',
            );
            "hideattic" => "1",

            CVSWEB 可不能隨便開放給所有用戶,因此需要使用WEB用戶認(rèn)證:
            先生成 passwd:
            /path/to/apache/bin/htpasswd -c cvsweb.passwd user

            修改httpd.conf: 增加
            <Directory "/path/to/apache/cgi-bin/cvsweb/">
            AuthName "CVS Authorization"
            AuthType Basic
            AuthUserFile /path/to/cvsweb.passwd
            require valid-user
            </Directory>

            CVS TAGS: 最后是誰,什么時(shí)間修改了文件
            =====================================

            將$Id$ 加在程序文件開頭的注釋里是一個(gè)很好的習(xí)慣,cvs能夠自動(dòng)更新其中的內(nèi)容成:
            file_name version time user_name 的格式,比如:
            cvs_card.txt,v 1.1 2002/04/05 04:24:12 chedong Exp,可以這些信息了解文件的
            最后修改人和修改時(shí)間

            幾個(gè)常用的缺省文件:
            default.php
            <?php
            /*
            * Copyright (c) 2002 Company Name.
            * $Id$
            */

            ?>

            Default.java: 注意文件頭一般注釋用 /* 開始 JAVADOC注釋用 /** 開始的區(qū)別
            /*
            * Copyright (c) 2002 Company Name.
            * $Id$
            */

            package com.netease;

            import java.io;

            /**
            * comments here
            */
            public class Default {
            /**
            *
            * @param
            * @return
            */
            public toString() {

            }
            }

            default.pl:
            # Copyright (c) 2002 Company Name.
            # $Id$

            # file comments here

            #!/usr/bin/perl -w
            use strict;



            相關(guān)資源:

            CVS HOME:
            http://www.cvshome.org

            CVS FAQ:
            http://www.loria.fr/~molli/cvs-index.html

            相關(guān)網(wǎng)站:
            http://directory.google.com/Top/Computers/Software/
            Configuration_Management/Tools/Concurrent_Versions_System/

            CVS 免費(fèi)書:
            http://cvsbook.red-bean.com/
            CVS 速查卡片:
            http://www.refcards.com/about/cvs.html
            posted on 2010-06-08 16:57 chatler 閱讀(587) 評論(0)  編輯 收藏 引用 所屬分類: cvs
            <2008年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            91精品久久久久久无码| 久久久久国色AV免费观看| 久久精品无码一区二区无码| 久久精品亚洲一区二区三区浴池| 国产成人无码精品久久久久免费| 久久亚洲高清综合| 国内精品久久久久久久97牛牛| 国产精品成人99久久久久91gav| 久久人人爽人人人人片av| 国产亚洲精品自在久久| 久久毛片一区二区| 亚洲综合久久综合激情久久| 精品国产99久久久久久麻豆| 国产综合精品久久亚洲| 乱亲女H秽乱长久久久| 亚洲国产成人精品91久久久 | 人妻丰满AV无码久久不卡| 99热精品久久只有精品| 久久久久人妻一区二区三区vr| 久久国产午夜精品一区二区三区| 精品久久久久久国产潘金莲| 伊人久久国产免费观看视频| 国产精品成人久久久久久久| 久久久久99精品成人片欧美| 国产成人精品久久| 中文成人无码精品久久久不卡 | 久久久久亚洲AV无码去区首| 国内精品久久久久影院优| 亚洲AV日韩AV天堂久久| 久久只有这精品99| 亚洲精品无码久久毛片| 久久99精品国产99久久6| 亚洲成人精品久久| 日本精品久久久久中文字幕8 | 伊人久久亚洲综合影院| 久久久久国产精品三级网| 夜夜亚洲天天久久| 国产亚洲色婷婷久久99精品91| 91精品国产高清久久久久久91| 日韩亚洲欧美久久久www综合网 | 2021久久国自产拍精品|