Linux/버전관리2009. 5. 26. 11:33
http://kyungseo.pe.kr/blog/23



아직 미비한 부분이 꽤 있지만, CVSNT 설치에 관하여 위키에 정리한 글을 붙여본다. - 역시나 포맷이 틀어지는 문제가 있다. -_-

원본 URL은 http://kyungseo.pe.kr/wiki/development/tools/cvs 이다.




CVSNT 2.5.03 설치 및 설정 가이드


이 문서는 윈도우에 CVS(Concurrent Version System)를 설치 하고 설정하는 과정에 대한 가이드로서,

  • 이전(2004년 5월 11일)에 작성했던 CVSNT 2.0.41a의 설치 가이드를 현재 시점(2007년 9월)의 최신 버전인 CVSNT 2.5.03.2382에 맞게 재 편집한 것이다.
  • CVS 사용자 매뉴얼이 아니라 프로그램 설치와 몇가지 설정에 대한 가이드를 제시한다. CVS의 사용법에 대한 것은 The CVSNT Manual(command reference)를 참고하라.
  • 주로 CVSNT Installation Tips 페이지를 참고하여 작성되었다.


CVSNT 2.5.03 설치


CVSNT의 설치 대상은 Windows XP Pro이다. Windows 2003의 경우 이 가이드와 유사할 것이다. 참고로 XP Home은 보안상의 이유로 CVSNT의 설치 대상에서 제외하는 것이 권장된다.


CVSNT Server 설치


CVSNT Server 설치 준비


로그인

설치 전 반드시 administrator로 로그인 하도록 한다.

로컬 디스크(local disk) 사용

repository 파일들의 저장 위치를 네트웍 드라이브를 지정해서는 안된다.

파일 시스템 형식

NTFS 파일 시스템을 사용할 것을 강력히 권장한다.

폴더 옵션

“모든 사용자에게 동일한 폴더 공유 권한을 지정(권장)”의 체크를 해제하도록 한다. 이것은 Windows 95, 98과의 호환성을 유지하기 위한 옵션이다.

“모든 폴더에 적용” 버튼을 클릭한다.

CVSNT 다운로드

가장 최신의 CVSNT 설치본을 다운로드 한다. 2007년 09월 현재 안정 버전은 2.5.03.2382이다.

CVS 디렉토리 생성

CVS가 어떤 파일 시스템에 설치되는지는 중요하지 않다. 단, repository 파일이 위치하는 곳은 NTFS여야한다. 디렉토리 이름에 공백을 넣지 않도록 한다.

아래의 경로와 같은 디렉토리를 생성한다. 이후의 설명은 다음 디렉토리 구성을 전제로 한다.

c:\cvsrepos
c:\cvsrepos\cvstemp
디렉토리 보안과 권한
  • c:\cvsrepos\cvstemp 디렉토리의 보안 세팅에서 SYSTEM을 포함하는 모든 계정에 모든 컨트롤(권한)을 허가한다.
  • cvstemp 디렉토리로 c:\WINNT\Temp 혹은 “C:\Documents and Settings” 하위의 어떤 디렉토리라도 지정해서는 안된다. Win2000과 Win-XP의 경우 이들 디렉토리는 사용자 접근을 제한하기 때문이다.

CVSNT 설치

Welcome

License Agreement

Choose Setup Type

Ready to Install

Installing

Completing

Installer Information

NT/Win2000/XP에서 CVSNT를 설치 후 반드시 rebooting하도록 한다. 리부팅하지 않고 repository를 생성하려 하면 “Repository initialization failed”라는 error가 발생할 것이다. 단, CVSNT 업그레이드 과정이라면 리부팅할 필요가 없다.

CVSNT server와 repository 설정

CVSNT Control Panel configuration

애플릿 실행

제어판을 열어 애플릿을 실행한다.

서비스 중지

애플릿의 “About” 탭에서 CVS Service가 실행 중이라면 정지하도록 한다.

저장소 생성

“Repository configuration” 탭으로 이동한다. 참고로 테스트 서버의 이름은 “kyungseo”이다.

저장소 추가를 위해 Add 버튼을 클릭한다. 아래와 같은 화면이 팝업된다.

폴더 브라우저를 띄우고 저장소의 루트가 될 폴더를 선택하거나 새 폴더를 생성한다(폴더 경로에는 가급적 공백을 포함하지 않도록 한다).

Name은 기본값(폴더 경로)을 사용하지 말고 아래와 같이 입력하도록 한다.

“예” 버튼을 눌러 저장소를 초기화한다.

저장소 목록에 추가된다.

서버 설정

“Server Settings” 탭으로 이동한다. 대부분 기본값을 그대로 사용하는데, 도메인의 경우 서버 컴퓨터의 이름으로 설정한다. temporary directory의 경우 폴더 브라우저를 열어 이전 단계에서 생성한 “c:\cvsrepos\cvstemp” 디렉토리를 선택한다.

호환성 옵션

“Compatibility Options” 탭으로 이동한다. 기본값을 그대로 사용한다.

플러그인

“Plugins” 탭에서는 추가적인 확장 기능과 연결 프로토콜을 정의한다. Configure 버튼을 클릭하면 선택된 항목의 설정을 변경할 수 있다.

고급 설정

마지막으로 “Advanced” 탭에서는 고급 설정을 변경할 수 있다.

적용

“적용” 버튼을 반드시 누르도록 한다. 그리고 첫번째 탭(About)으로 이동하여 서비스를 시작하도록 한다.

CVS 사용자 추가 및 관리

CVS server에 pserver나 sserver 프로토콜을 사용하려 할 때 필요한 단계이다.

CVS 사용자 계정 추가

서버 상에 두개의 실제 계정(시스템 계정)을 생성하도록 한다. 이 계정들은 CVS 사용자들의 작업 계정이 된다.

  • cvsadmin : CVS 관리자 계정
  • cvsuser : CVS 일반 사용자 계정

CVS 사용자 추가

커맨드 창을 열고 다음과 같이 입력하여 CVS 사용자를 추가할 수 있다. <text> 부분은 실제 환경에 맞게 변경하도록 한다.

set cvsroot=:sspi:<computername>:/TEST
cvs passwd -a <account name>

주의 할 것은 이렇게 입력할 경우 사용자는 반드시 로컬 시스템에 존재하는 NT User여야 한다는 것이다.

아래와 같이 계정 이름에 공백이 포함되는 경우에는 쌍따옴표로 싸주도록 한다.

패스워드 입력 프롬프트에 두번 입력하면 CVSROOT/passwd 파일이 생긴다.

참고로 아래와 같은 명령으로 domain users를 추가할 수 있다.

cvs passwd -r <real accountname> -D <domain name> -a <cvs login name>
별칭을 사용한 CVS 사용자와 실제 계정의 매핑

수많은 CVS 사용자를 위해 그만큼의 시스템 계정을 모두 생성할 필요는 없다. 대신, 아래와 같은 명령으로 실제 시스템 계정에 대한 별칭을 생성할 수 있다.

cvs passwd -r <real accountname> -a <cvs login name>

계정에 공백이 포함되어 있다면 쌍따옴표로 감싸도록 한다.

cvs passwd -r "system admin" -a "new user"

여기까지 진행한 후 passwd 파일을 열어보면 다음과 같다.

어드민 사용자 권한

시스템 인증 설정과 별개로 CVS Admin을 설정하려면 CVSROOT/admin 파일을 만들고 CVS 어드민 권한을 부여하려는 사용자를 라인으로 구분하여 등록한다. 이 파일은 다음과 같은 형태가 될 것이다.

kyungseo
chanwoo
testaccount 

Test

PSERVER

새로운 명령 창을 열고 아래와 같이 입력한다. <text>는 실제 환경에 맞게 수정해야한다.

set cvsroot=:pserver:<user>@<computername>:/TEST

그리고 다음과 같이 입력한다(“cvs login”에서 패스워드 입력 프롬프트가 뜬다).

cvs login
cvs ls -l -R

Test/CVSROOT의 파일 목록이 표신된다(아래 그림의 경우 아직 추가한 파일이 없어 목록에 아무것도 나타나지 않고 있다).

SSERVER

(내용 업데이트 예정)

Remote

다른 컴퓨터에서 CVS 서버로 원격 접속할 경우에도 상위 기술한 PSERVER, SSERVER의 과정과 동일하다.

단, 로그인이 실패할 경우 CVS 서버의 방화벽 설정을 편집해야 할 수도 있다. 제어판에서 “Windows 방화벽” 애플릿을 실행하고 예외 탭으로 이동 후, 포트 추가 버튼을 클릭한다.

CVSNT, 2401 포트(TCP)를 예외항목으로 추가한다.

방화벽 설정

 


CVS Client

TortoiseCVS와 CVS-Gui(구 WinCvs)를 많이 사용한다. 각 Client 프로그램의 설치 및 사용법은 직관적으로 어렵지 않다.

여기서는 링크만을 제공하며 자세한 내용은 차후에 추가할 예정이다.

TortoiseCVS

http://www.tortoisecvs.org/

CVS-Gui(WinCvs)

http://www.wincvs.org/

ViewCvs

http://www.viewvc.org/

CS-CVS

http://www.componentsoftware.com/products/cvs/index.htm

Eclipse에서 CVS 사용

Eclipse에서 CVS를 사용하기 위한 간략한 가이드이다. 자세한 것은 Working in the team environment with CVS을 참고한다.

참고로 Eclipse의 최신 버전은 이곳 또는 여기에서 다운로드 할 수 있다. Eclipse Language Pack을 설치하면 한글화 된 도움말을 볼 수 있다.

CVS 저장소 추가

Window > Open Perspective > Other…를 선택한다.

CVS Repository Exploring을 선택하고 OK 버튼을 클릭한다.

아래와 같이 CVS Repository Exploring 퍼스펙티브가 열린다.

CVS Repository Exploring에서 컨텍스트 메뉴를 띄우고 New > Repository Location…을 선택한다.

그림과 같이 입력하여 CVS 저장소를 추가한다. Repository Path에 유의하도록 한다. Save Password에 체크하면 비밀번호를 기억한다.

저장소가 추가된 모습이다.

초기 작업

저장소에 기본 리소스 추가

기본 소스가 있다면 최초로 저장소에 추가하는 작업을 진행한다.

Package Explorer에서 CVS 저장소에 추가하기 위한 프로젝트를 선택한 후 컨텍스트 메뉴의 Team > Share Project…를 선택한다.

저장소 유형으로 CVS를 선택한다. 저장소 플러그인으로 CVS만 있다면 이 화면은 생략될 수 있다.

프로젝트를 공유하기 위한 저장소로 이전 단계에서 등록한 CVS 저장소를 선택한다.

모듈 이름을 설정한다.

Finish 버튼을 클릭한다.

Commit 창이 팝업된다. 적절한 Comment를 입력한다.

리소스 커밋 작업이 진행된다.

작업이 종료된 후의 Pagkage Explorer 모습이다. Icon이 달라졌다.

이제, 컨텍스트 메뉴를 통해 팀 작업을 수행할 수 있다.

저장소로부터 프로젝트 생성

CVS Repositories에서 저장소를 펼치면 등록된 프로젝트를 HEAD에서 확인할 수 있다. 해당 프로젝트의 컨텍스트 메뉴에서 Check Out As…를 선택한다.

Finish 버튼을 클릭하면 저장소로 부터 리소스를 다운로드하여 프로젝트를 생성한다.

간략한 CVS 사용법

여기서는 CVS와 관련한 메뉴 정도만 설명하도록 한다. 자세한 내용은 위에 기술한 Eclipse Language Pack을 설치하여 한글화된 도움말을 보는 것을 권장한다.

용어 정의

용어 설명
Repository CVS 서버에서 소스를 모아둔 파일 시스템
Checkout CVS 저장소에서 모듈을 가져옴
Commit CVS Repository에 변경사항을 반영
Update CVS Repository에 저장된 내용과 Local에 저장된 내용을 비교하여, 변경된 내용을 Local로 가져옴
Revision 개별 파일마다 부여된 일련번호로, Commit 할때마다 자동 증가함 ( 1.1 부터 시작 )
Version 여러 Revision을 가진 파일들의 묶음에 부여한 일련번호
Tag 파일이나 파일들의 집합에 대한 대표 이름
Branch 하나의 모듈을 여러 버전으로 나누는 것. 모듈을 루트로 하여 각각의 버전들을 트리 형태로 관리
Head Main Branch
Synchronize Repository와 Local PC의 파일과 비교하여 Update 수행

메뉴

Workbench의 컨텍스트 메뉴에 나타나는 CVS 관련 메뉴에 대해서 알아본다.

Team

Team 메뉴의 하위 메뉴는 다음과 같다.

메뉴 항목 설명
Synchronize with Repository 저장소의 내용과 Local에 저장된 파일 내용과의 비교
Commit Eclipse에서 작업한 최신 변경 분을 CVS 저장소에 반영.
Update CVS 저장소의 파일과 Local에 저장된 파일과 비교하여 변경사항을 Local 에 반영
Create Patch Source 상의 주요 변경사항을 개발자에게 배포하기 위한 변경분에 대한 Patch 파일 생성
Apply Patch Patch 파일에 대한 반영
Tag as Version 여러 Revision들의 묶음을 하나의 Tag로 관리
Branch 각 모듈에 대한 Branch 생성
Merge
Switch to Another Branch or Version
Show Annotation
Show History CVS 의 각 Resource의 Revision History 출력
Add to Version Control
Add to .cvsignore
Change ASCII/Binary Property
Restore from Repository 삭제된 파일등을 저장소로부터 복구
Revert to Base
Show Editors 각 파일에 대한 Editor들을 출력
Unedit
Edit
Compare With

Compare With 메뉴의 하위 메뉴는 다음과 같다.

메뉴 항목 설명
Latest from HEAD 현재 파일을 Repository의 최신파일과 비교
Another Branch or Version 특정 Head, Branch 또는 Tag를 가진 파일들과 비교
Each Other
History 해당 파일의 Revision 내역
Replace With

Replace With 메뉴의 하위 메뉴는 다음과 같다.

메뉴 항목 설명
Latest from HEAD 현재 파일을 저장소의 최신파일로 교체
Another Branch or Version 최신 모듈이 아닌 다른 Branch 또는 Version과 모듈 교체
History Revision 비교
Previous from Local History Local History내의 이전 파일과의 교체
Delete

로컬 환경에서 파일을 삭제한다.

삭제된 파일을 포함하고 있던 디렉토리의 컨텍스트 메뉴에서 Team > Synchronize with Repository를 선택하여 Commit하면 된다.

Links



Posted by 삼스
Linux/버전관리2009. 5. 25. 13:10

cvs서버 다운로드 : http://www.march-hare.com/cvspro/#downcvsnt

CVSNT 를 사용중 피시를 옮기거나 OS 를 재설치를 할 경우 서버 세팅을 해야하는데 잘 모르시는분들이 많더군요.

 

얼떨결에 OS를 교체하게 되었는데 CVS세팅을 복원시키는것에 대해서 잠시 당황해 했지만 그다지 어렵지 않습니다.

 

 



1. 백업해놓은 CVS Repository 폴더를 적당한 위치에 둡니다.

 

2. CVS Control pannel 을 열어서 CVS Repository 위치를 잡아줍니다.

 

3. CVS Repository 의 Name 항목을 기존 항목과 동일하게 잡아줍니다.

 +- Name 이 기억이 나지 않는다면 해당 Repository 를 사용하는 파일이 위치하는 폴더에서 CVS폴(숨겨져있음)을 찾아서 Root 파일을 텍스트에디터로 열어보면 나옵니다.

 

4. 서비스를 재시작하고 접속테스트를 합니다.

 

여기까지 하면 일반적으로 백업해둔 CVS를 복원하는것입니다.

 

* 사용자의 ID 가 변경되었을 경우

 +- 기본적으로 백업 전의 사용자 계정을 똑같이 새로운 피시에 입력해두어야합니다. 비밀번호도 동일하도록 하는것이 좋습니다. 하지만 사용자의 계정이 입력이 안될경우(저같은경우 새로운 피시의 컴퓨터 이름을 이전의 CVS 아이디로 지정할 경우 윈도우 사용자 계정으로 추가할 수 없음) 가 있습니다.

  +- 프로젝트를 통째로 지우고 CVS에서 새로 생성된 ID 로 다시 Checkout 을 받는 방법

  +- 기존의 프로젝트 폴더에서 검색으로 모든 Root 파일을 찾은 후에 내부에 지정된 아이디를 새로운 아이디로 몽땅 교체하는 방법

 

Posted by 삼스
Linux2009. 5. 17. 13:04
1. target platform 선정
2. cross compiler 설정
  gcc를 선정하게 되는데 platform에 맞는 컴파일러를 선정하면된다.
  ARM용 gcc는 아래위치에서 다운로드 가능하다.
  http://www.handhelds.org/download/projects/toolchain
  root권한으로 압축 해재
  #cp ./arm-linux-gcc-3.4.2.tar.bz2 /
  #cd /
  #tar xvjf arm-linux-gcc-3.4.2.tar.bz2
  이렇게 하면 /usr/local/arm/3.4.2디렉토리 밑으로 설치가 된다.
  #arm-lunux-gcc
    arm-linux-gcc: no input files


Posted by 삼스
Linux2009. 4. 30. 17:36
http://cafe.naver.com/cmdir.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=400

find - 파일찾기


find 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾는다.

사용법을 살펴보자.
find 대상디렉토리 검색 조건 처리 방법

대상 디렉토리 : 찾기를 시작할 디렉토리를 지정한다.
검색 조건 : 찾을 조건을 지정한다.
-name filename
파일 이름으로 찾는다.
-atime +n
access time 이 n일 이전인 파일을 찾는다.
-atime -n
access time이 n일 이내인 파일을 찾는다.
-mtime +n
n일 이전에 변경된 파일을 찾는다.
-mtime -n
n일 이내에 변경된 파일을 찾는다.
-perm nnn
파일 권한이 nnn인 파일을 찾는다.
-type x
파일 타입이 x인 파일들을 찾는다.
-size n
사이즈가 n이상인 파일들을 찾는다.
-links n
링크된 개수가 n인 파일들을 찾는다.
-user username
user이름으로 찾는다.
-group groupname
group 이름으로 찾는다.

처리방법 : 찾은 파일을 어떻게 할 것인지를 지정한다.
-print
찾은 파일의 절대 경로명을 화면에 출력한다.
-exec cmd {}\; 
찾은 파일들에 대해 cmd 명령어를 실행한다.


예를 들어보자.
$ find /user4 -name test* -print

/user4 아래에서 파일이름이 test로 시작하는 모든 파일을 찾아서 화면에
보여준다.

$ cd /
$ find . -name ping -print

root 디렉토리 밑에서 파일이름이 ping인 파일을 찾아 절대 경로명을 화면에
출력한다.

$ cd /
$ find /usr -name *.c -print

/usr 밑에 이름이 .c로 끝나는 모든 파일들을 찾아 경로명을 보여준다.

$ cd /
$ find $home -name who.txt -print

home 디렉토리 아래에 who.txt라는 파일을 찾아 경로명을 보여준다.

$ cd /
$ find . -type d -print

파일 타입이 d인 파일을 찾아 경로명을 화면에 출력한다.

$ cd /
$ find /dev -type c -print

/dev디렉토리 아래에서 파일 타입이 c인 파일을 찾아 경로명을 보여 준다.

$ cd /
$ find . -perm 700 -print

파일 권한이 700인 파일을 찾아준다.

$ cd /
$ find . \ ( -perm 400 -o -perm 200 ) -print

파일 권한이 400인 파일과 200인 파일을 찾아준다.
(주의 : "\"의 앞뒤에 space 가 반드시 있어야 한다.)

$ cd /
$ find . -size +1024 -print

파일의 블럭 크기가 1024 이상인 파일을 찾아준다.

$ cd /
$ find . -name core -size +2048 -print

파일 이름이 core이고 크기가 2048블럭 이상인 파일을 찾아준다.

$ cd /
$ find . -user unix01 -print

파일 소유자가 unix01인 파일을 찾아준다.

$ cd /
$ find . -group unix -print

사용자그룹이 unix인 파일을 찾아준다.

$ cd /
$ find . -atime +30 -print

30일 이전에 억세스되었던 파일을 찾는다.

$ cd /
$ find . -mtime -7 -print

7일 이내에 수정된 적이 있는 파일을 찾는다.

$ cd /
$ find . -name core -exec ls -l {} \;

이름이 core인 파일을 찾아서 ls -l 한다.

$ cd /
$ find . -name \*.c -atime +30 -exec ls -l {} \;

30일 이전에 억세스된 파일 중 *.c를 찾아 ls -l 한다.

$ cd /
$ find . -name core -exec rm -i {} \;

현재 디렉토리 밑에서 이름이 core인 파일을 찾아 지운다(지우기 전에 정말
지울 지를 물어본다.)

Posted by 삼스
Linux/버전관리2009. 4. 29. 22:11
참조: http://www.kernel.org/pub/software/scm/git/docs/git-config.html

사용자 삽입 이미지

--global 옵션을 사용하려고 시도하면 처음에 fatal: $HOME not set git 이런 에러를 만나게 됩니다. 그럼 환경 변수에 $HOME 변수를 추가해주고 다시 시도해보면 잘 동작할 겁니다.

기트 설정 파일의 위치는 세 종류가 있습니다. 특정 저장소와 관련된 설정, 컴터 사용자 관련 설정, 컴터 관련 설정이 있습니다.

아무런 옵션을 주지 않고 git config 라고 사용하면 그 하위 폴더에 .git/config에 설정 합니다. 명시적으로 -f ./git/config 또는 --file ./git/config 같은 식으로 설정할 수도 있습니다.

ex) git conifg user.name "whiteship"

컴터 사용자 관련 설정은 --global 옵션을 사용하면 되고, 시스템 관련 설정은 --system을 사용하면 됩니다.

설정한 정보는 --list 옵션으로 보는데, 살펴볼 설정 위치를 명시해주지 않으면 모든 위치의 설정 성보를 보여줍니다.

ex) git config --list

사용자 삽입 이미지
Posted by 삼스
Linux/버전관리2009. 4. 29. 22:10
참조: http://git-scm.com/documentation

로컬 명령어

git config      저장소 또는 글로벌 옵션 가져오거나 설정할 때 사용.
git init     비어있는 기트 저장소 만들거나 기존의 저장소 다시 초기화.
git add     파일 내용을 인덱스에 추가.
git status     작업 트리(working tree) 상태 보기.
git commit     저장소에 변경 사항 기록하기.
git log     커밋 히스토리 보기.
git show     특정 객체 정보 보기.
git tag     태그 만들고, 나열하고, 삭제하고, 검증할 때 사용.

원격 명령어

git clone      저장소를 새 디렉터리에 복사하기.
git remote     추적중인 저장소(tracked repository) 집합 관리하기.
git pull     다른 저장소 또는 로컬 브랜치에서 가져온(fetch) 다음 병합하기(merge).
git fetch     다른 저장소에서 가져오기.
git push     연관된 객체로 원격 저장소 업데이트.

브랜치 명령어

git checkout      브랜치 또는 패스(path)를 작업 트리로 체크아웃하기.
git branch     브랜치 목록 나열하기, 만들기, 삭제하기할 때 사용.
git merge     두 개 이상의 개발 히스토리를 하나로 합치기.
git rebase     브랜치 베이스를 변경할 때 사용(?).

기타 명령어

git diff      커밋, 작업 트리 등 변경 사항 보기.
git apply     기트 인덱스 파일과 작업 트리에 패치(patch) 적용하기.
git format-patch     이메일로 보낼 패치 준비하기.
git am     메일 박스에있는 패치 적용하기.
Posted by 삼스
Linux/버전관리2009. 4. 29. 22:09
참조: http://git.or.cz/course/svn.html

저장소(Repository): 서브버전에서 각각의 프로젝트는 체크아웃하고 커밋하는 중앙에 위치한 단일 저장소에 위치한다. Git는 다르게 동작한다. 각각의 프로젝트 트리(working copy라고 부른다) 복사본을 각자의 저장소에 가지고 있는다. 따라서 로컬과 원격 브랜치를 가질 수 있다. 또한 워킹 카피에 붙어있지 않은 베어 저장소(Bare repository)를 가질 수 있는데, 이 것은 특히 저장소를 공개하고 싶을 때 유용하다.

URL: 서브버전에서 URL은 저장소 위치 식별자와 저장소 내부 경로를 나타낸다. 따라서 저장소의 레이아웃과 그 의미를 구조화 한다. 보통 trunk/, branches/, tags/ 디렉터리를 가지고 있을 것이다. 기트에서 URL은 단순 저장소 위치다. 브랜치와 태그는 항상 내포하고 있다. 브랜치중 하나를 기본으로 사용하고 그 이름이 보통 master다.

리비전(Revision): 서브버전은 리지번을 증가만 하는 정수 id로 식별한다. 대규모 프로젝트에서는 금방 수 백, 수 천이 되는 경향이 있다. Git 같은 분산 시스템에서는 실용적이지 않다. Git는 SHA1 id로 리비전을 식별한다. 16 진수의 기다란 160 비트 숫자다. 처음엔 좀 당황스럽지만 실제로는 그리 방해가 되지 않는다. 최신 리비전을 HEAD로 참조할 수 있고, 그 부모를 HEAD^ 로 참조하고 부모의 부모는 HEAF^^ = HEAD^2 이런식으로 참조할 수 있다. 또한 리비전의 앞 부분 몇 개만으로 참조할 수 있다. 그것으로 식별할 수 있다면 기트가 나머지를 추측할 것이다.

커밋(commit): 각각의 커밋은 author와 committer가 있다. 누가 언제 코드를 변경했고 누가 그것을 커밋했는지 알려주는 정보다.(Git는 메일로 주는 패치를 잘 적용할 수 있도록 설계 했는데, 이런 경우 author와 committer가 다를 수 있다.) git config -I로 이름과 이메일을 확인할 수 있다. 그리고 다음 명령어로 그 정보를 설정할 수 있다.

git config --global user.name "Your Name Comes Here"
git config --global user.email you@yourdomain.example.com

명령어: git command 형태인데, git-command 형태로 사용할 수도 있다.

색상: 다음과 같이 설정하면 컬러풀한 결과를 볼 수 있다. 기본값으로 색상을 사용하지 않는다.

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

비주얼: gitk를 사용해서 저장소를 살펴보면 편리할 것이다. 맥용 gitk 대체 애플리케이션
Posted by 삼스
Linux2009. 4. 25. 12:38
Posted by 삼스
Linux2009. 4. 1. 17:56
http://plan.tistory.com/168

우분투로 갈아타게 된 큰 동기 중의 하나는 페도라가 무선랜을 알아서 잡아주지 않는다. 하는 건방진 이유에서 였습니다. -ㄴ-
자동으로 잡아주진 않더라도, 방법이 쉬우면 해봤을텐데 생각보다 어렵고 해서 끈기없이 포기했어요.

과제 덕분에 페도라를 반드시 써야 해야 해서 어찌 할까 고민하다 검색해보니 방법이 있더라고요.
http://blog.empas.com/h2dong/17745882 여기서 보고 해결했습니다. 아주 자세해요.
이제부터의 내용은 제가 나중에 잊어버리면 보고 하려고 정리해 놓은 것이니 
제대로 하실 분들은 링크를 참고하세요. '-' 뭐랄까, 노력과 정성이 담긴 포스트같아요. (여긴 날림)

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

잠깐 정리해 보자면,

1. 최신의 커널을 다운받아 설치. 
   kernel-devel- 로 시작하는 개발용 라이브러리도 같이 설치. 
   코어 6 : 
http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/i386/
   코어 5 : 
http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/i386/

   인텔에서 다운받은 드라이버를 바로 make 하려고 하면 ieee80211 에러가 화면 한가득 나타났었고
   그것부터 설치해야 해서 포기했었는데, 최신 커널엔 기본으로 들어가 있는 듯 해요. 

2. 커널 업데이트 후엔 언제나 리부팅.

3. 
http://ipw3945.sourceforge.net/ 에서 ipw3945-1.2.1.tgz(현재 최신 버전)를 다운로드.
   
인텔 홈페이지에서 리눅스용 드라이버를 다운로드. 현재 최신 버전은 ipw3945-linux-1.2.0.tgz.

4. ipw3945-1.2.1.tgz의 압축을 풀고 make, make install 하여 
ipw3945.ko 파일 생성.
   이 파일을 
/lib/modules/커널버전/kernel/drivers/net/wireless 에 복사.

5. ipw3945-linux-1.2.0.tgz의 압축을 풀고 
    ipw3945-ucode-버전 디렉토리 안의 
ipw3945-ucode 파일을 /lib/firmware/에 복사.
    ipw3945d-버전 디렉토리안의 
ipw3945d 파일을 /sbin/ 에 복사.

6. 아까의 
/lib/modules/커널버전/kernel/drivers/net/wireless/ 디렉토리로 가서 다음 명령 실행.
    chmod 744 ipw3945.ko
    depmod -a
    modprobe ipw3945;ipw3945d

7. 네트워크 설정에서 무선랜 연결을 추가하고 활성화.

8. /etc/modprobe.conf 에 
alias eth1 ipw3945 
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet 
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945

/etc/rc.local 에
/sbin/ipw3945d --quiet
추가하고 저장.

9. 끝.

10. 학교의 네스팟이 역시 안잡혀서, 우분투랑 같은 이유인가 하고 고쳐주니 연결이 돼요.
     우분투는 /etc/dhcp3/dhclient.conf 에 
    interface "eth1" {
           send host-name "plan" ; 
           
send dhcp-client-identifier XX:XX:XX:XX:XX:XX ;   #이 부분이 중요.
   }
를 추가하면 됐는데 페도라엔 저런 디렉토리도 없고 파일도 없어요. 

대신 네트워크 설정의 dhcp관련 호스트명을 설정하면 /etc 디렉토리에 dhclient-eth1.conf 파일이 생긴다. 파일을 열어서 아래 내용을 추가하고 네트워크를 재시작하면 아마 될거에요.
XX어쩌고는 무선랜의 맥어드레스에요.
send host-name "plan" ; 
send dhcp-client-identifier XX:XX:XX:XX:XX:XX ;

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

페도라 코어 5도 같은 방법으로 되네요.. 

요근래 페도라만 10번 정도 (아니면 더 많이) 설치한 것 같아요. 
설치와 무선랜 설정만은 자신이 생겼어요. -ㄴ- (더불어 bootp와 tftp와 nfs, minicom 설정 역시)

생각해보니 꼭 페도라를 써야 하는게 아닌 것 같아서 더 뿌듯해지네요. 제길.

Posted by 삼스
Linux2009. 3. 17. 18:43

http://www.superuser.co.kr/software/servuftp/ServUftp07.htm


이번에는 Serv-U FTP에 접속해서 사용할 수 있는 FTP명령어에 대해서 알아보도록 하겠습니다.

물론 일반 FTP의 사용법과도 동일한 것입니다.

ftp모드에서 사용할 수 있는 명령어와 일반 유닉스 명령어와 별도로 존재합니다.

즉, ftp로 접속했을 때 사용할 수 있는 명령어를 확인해 보려면 ftp>?을 입력해 보면 사용가능한 ftp명령어가 디스플레이됩니다.

또한 "ftp>? 명령어"로 해당명령어의 도움말을 볼 수 있습니다.

다음은 이들 ftp명령어중 자주 사용하는 명령어에 대한 설명이며, ftp명령어는 FTP서버에 따라 아주 조금씩 차이는 있습니다. 

설명의 명확성을 위하여 다음과 같이 가정하도록 하겠습니다.

A서버의 계정사용자가 B서버로 접속(ftp든 telnet이든)했을 때 흔히 로컬(local)시스템이란 A를 의미하며, 원격(remote)시스템이란 B를 의미합니다.

맨 뒤의 괄호안의 내용은 사용예를 든 것입니다. 

 

 

ascii : 전송모드를 ASCII모드로 설정한다.(ascii또는 as)

binary : 전송모드를 BINARY모드로 설정한다.( binary또는 bi)

bell : 명령어 완료시에 벨소리를 나게한다.(bell)

bye : ftp접속을 종료하고 빠져나간다.(bye)

cd : remote시스템의 디렉토리를 변경한다.(cd 디렉토리명)

cdup : remote시스템에서 한단계 상위디렉토리로 이동한다.(cdup)

chmod : remote시스템의 파일퍼미션을 변경한다.(chmod 755 index.html)

close : ftp접속을 종료한다. (close)

delete : remote시스템의 파일을 삭제한다.(delete index.old)

dir : remote시스템의 디렉토리 내용을 디스플레이한다.(dir)

disconnect : ftp접속을 종료한다.(disconnect)

exit : ftp접속을 종료하고 빠져나간다.(exit)

get : 지정된 파일하나를 가져온다.(get index.html)

hash : 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.(hash)

help : ftp명령어 도움말을 볼 수 있다.(help또는 help 명령어)

lcd : local시스템의 디렉토리를 변경한다.(lcd 디렉토리명)

ls : remote시스템의 디렉토리 내용을 디스플레이한다. (ls 또는 ls -l)

mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다.( mdelete *.old)

mget : 여러개의 파일을 한꺼번에 가져오려할 때 사용한다. ( mget *.gz)

mput : 한꺼번에 여러개의 파일을 remote시스템에 올린다.(mput *.html)

open : ftp접속을 시도한다.(open 168.126.72.51또는 open ftp.kornet.net)

prompt : 파일전송시에 확인과정을 거친다. on/off 토글 (prompt)

put : 하나의 파일을 remote시스템에 올린다.(put index.html)

pwd : remote시스템의 현재 작업디렉토리를 표시한다.(pwd)

quit : ftp접속을 종료하고 빠져나간다.(quit)

rstatus : remote시스템의 상황(version, 어디서, 접속ID등)을 표시한다.(rstatus)

rename : remote시스템의 파일명을 바꾼다.(remote 현재파일명 바꿀파일명)

rmdir : remote시스템의 디렉토리을 삭제한다.(rmdir 디렉토리명)

size :remote시스템에 있는 파일의 크기를 byte단위로 표시한다.(size index.html)

status : 현재 연결된 ftp세션모드에 대한 설정을 보여준다.(status)

type : 전송모드를 설정한다.(type 또는 type ascii 또는 type binary) 

이상으로 ServU-FTP의 설명을 모두 마칩니다.

이 ServU-FTP를 사용하시면 언제든 여러분의 PC를 FTP서버로 만들수가 있습니다.

대규모의 FTP서비스는 하기 곤란하겠지만 사무실이나 사내의 FTP서버로는 훌륭하게 사용하실 수가 있습니다.

Posted by 삼스