반응형

The error message you're encountering indicates that there's an issue with a Git Large File Storage (LFS) object that is preventing your push to GitLab. Specifically, a file (AI/pyvideotrans-main/ffmpeg/you-get.exe) is marked as missing in the LFS, which is causing the push to fail. Here's how you can address this issue:

  1. Verify LFS Objects: First, ensure that all the necessary files are tracked and uploaded correctly in LFS. You can list LFS objects that are supposed to be uploaded with:이you-get.exe file or any other files are indeed missing or incorrectly tracked.
  2. bashCopy code
    git lfs ls-files
  3. Check for Missing Files: If the you-get.exe file is missing from your local repository, you'll need to obtain it again. This could mean downloading it from a source or finding the correct version of the file that should be there.
  4. Re-upload LFS Objects: After you've added or corrected the file in your local repository, you'll need to re-upload the LFS objects. You can do this with:
  5. bashCopy code
    git lfs push --all origin
  6. Consider LFS Locking: The message about LFS locking is a suggestion for managing LFS files, especially in a team environment. Enabling LFS file locking can prevent accidental overwrites when multiple people are working with large files. You can enable it with:
  7. bashCopy code
  8. Retry Pushing: Once you've addressed the missing file and re-uploaded the LFS objects, try pushing to the repository again:
  9. bashCopy code
    git push origin
  10. Consider allowincompletepush Option: As a last resort, if you're certain that the missing LFS object is not critical and you need to push the other changes, you can disable the check that's causing the push to fail. However, this should be used with caution as it can lead to incomplete data in your repository:
  11. bashCopy code
    git config lfs.allowincompletepush true git push origin

Remember, it's important to resolve these issues correctly to ensure that your repository remains consistent and all necessary files are available for you and your team.

 

 

반응형
반응형

 

Currently working custom merge options for WinMerge:

The options I used in Sourcetree 3.4.3 for Windows 64-bit with WinMerge 2.16.10.0 x64 and which worked for merging:

  • Options > Diff > External Diff / Merge:
    • Merge Tool: Custom
    • Merge Command: C:\Program Files\WinMerge\WinMergeU.exe
      • Arguments:
        -wl -wr -dl Remote -dm Base -dr Local \"$REMOTE\" \"$BASE\" \"$LOCAL\" -o \"$MERGED\"

 

 

ref : https://jira.atlassian.com/browse/SRCTREEWIN-13514

반응형
반응형

 

 

커밋... 클릭하시면

아래와 같이 화면이 나오는데

검색하고자 하는 Commit 번호와 확인 버튼을 클릭하시면 됩니다.

 

 

 

ref : https://organizingdata.tistory.com/96

반응형
반응형

병합 요청(MR)은 한 브랜치를 다른 브랜치로 병합하기 위한 요청이다. 병합 요청을 사용하여 소스 코드에 대해 제안된 변경사항을 시각화하고 협업한다.

개요

  • 병합 요청(일명 "MR")은 제안된 변경사항에 대한 많은 정보를 표시한다. MR의 본문에는 위젯(CI/CD 파이프라인이 있는 경우, 관련 정보 표시)과 함께 설명이 포함되며, 그 뒤에 해당 MR로 협업하는 사람들의 토론 스레드가 표시된다.
  • MR에는 스레드에서 발생하는 토론, 커밋 목록, 파이프라인 및 Job 목록, 코드 변경 및 인라인 코드 리뷰를 볼 수 있는 내비게이션 탭도 포함되어 있다.

사용 사례

A. 팀에서 일하는 소프트웨어 개발자일 경우

  1. 새 브랜치를 체크아웃하고 병합 요청을 통해 변경사항을 제출한다.
  2. 팀에서 피드백을 수집한다.
  3. 코드 품질 보고서로 코드를 최적화하는 구현 작업을 수행한다.
  4. GitLab CI/CD의 단위 테스트 보고서로 변경사항을 검증한다.
  5. 라이선스 준수 보고서를 통해 라이선스가 프로젝트와 호환되지 않는 종속성을 사용하지 않도록 한다. (ULIMATE)
  6. 관리자에게 승인을 요청한다. (STARTER)
  7. 관리자 :
    a. 최종 리뷰와 함께 커밋을 푸시한다.
    b. 병합 요청을 승인한다. (STARTER)
    c. 파이프라인이 성공하면 병합되도록 설정한다.
  8. 변경사항은 GitLab CI/CD에 대한 수동 작업을 통해 프로덕션에 배포된다.
  9. 구현이 성공적으로 고객에게 전달된다.

B. 회사의 웹 사이트를 위한 웹페이지를 작성하는 웹 개발자일 경우

  1. 새 브랜치를 체크아웃하고 병합 요청을 통해 새 페이지를 제출한다.
  2. 리뷰어(Reviewers)로부터 피드백을 수집한다.
  3. Review Apps로 변경사항을 미리 볼 수 있다.
  4. 웹 디자이너에게 구현을 요청한다.
  5. 관리자에게 승인을 요청한다. (STARTER)
  6. 승인되면, 병합 요청이 스쿼시(Squash) 및 병합되고, GitLab Pages를 사용하여 스테이징(Staging)에 배포된다.
  7. 프로덕션 팀이 프로덕션으로 병합 커밋을 체리 픽(Cherry-pick) 한다.

상단의 병합 요청 내비게이션 탭

  • 병합 요청에 대한 설명을 포함하는 새 Overview탭이 병합 요청의 맨 위에 위치한다. Overview 옆에서 Commits, Pipelines 및 Changes를 찾을 수 있다.

Merge Request 만들기

  • 모든 병합 요청은 브랜치를 만드는 것으로 시작된다. Git CLI 애플리케이션을 통해 명령 줄로 로컬에서 수행하거나 GitLab UI를 통해 할 수 있다.
  • 새 병합 요청을 시작하면, 방법에 관계없이, New Merge Request 페이지로 이동하여 병합 요청에 대한 정보를 채운다.
  • 방법에 관계없이 새 브랜치를 GitLab에 푸시하면, Create Merge Request 버튼을 클릭하고 거기에서 병합 요청을 시작한다.

New Merge Request 페이지

  • New Merge Request 페이지에서, 병합 요청에 대한 제목과 설명을 작성하여 시작한다. 브랜치에 이미 커밋이 있는 경우 제목은 첫 번째 커밋 메시지의 첫 번째 라인으로 미리 채워지고, 설명은 커밋 메시지의 추가 라인으로 미리 채워진다. 제목은 모든 경우에 필수인 유일한 필드이다.
  • 여기에서, 정보(제목, 설명, 담당자, 마일스톤, 레이블, 승인자)를 입력하고 Create Merge Request 버튼을 클릭할 수 있다.

Create Merge Request 버튼

  • 새 브랜치를 GitLab에 푸시했으면, GitLab의 저장소를 방문하여 화면 상단에서 Create Merge Request 버튼을 클릭할 수 있는 call-to-action(CTA, 행동 유도 또는 클릭 유도)을 확인한다.

 

 

ref : https://velog.io/@leyuri/Gitlab-Merge-Request-%EA%B8%B0%EB%8A%A5%EC%9D%B4%EB%9E%80

반응형
반응형

TortiseSVN 툴을 사용 중, 갑자기 제목과 같은 오류가 발생했습니다.

웃기는 일이 아닐 수 없습니다. Clean up 하래서 Clean up 을 했더니, 오류가 나고 다시 Clean up 을 하라고 합니다.

 

 

문제상황


SVN Update 를 하려고 할 때 아래와 같은 오류가 발생하였습니다.

에러메세지

Previous operation has not finished; run 'cleanup' if it was interrupted

 

그래서 Clean Up 을 하려고 하니 아래와 같은 오류가 다시 발생하였습니다.

에러메세지

Cleanup failed to process the following paths:

Previous operation has not finished; run 'cleanup' if it was interrupted

Please execute the 'Cleanup' command.

 

 

해결방법


http://www.sqlite.org/download.html

위 링크로 접속한 후에 sqlite-tools-OS버전 으로 된 첨부 URL 을 다운받은 후 압축해제합니다. (저의 경우는 윈도우)

 

 

압축을 해제하면 sqlite3 이라는 exe 파일이 있는데, 이 파일을 SVN 홈 경로로 이동시킵니다.

이 후 CMD 창을 통해서 SVN 경로로 이동한 후에 다음과 같은 명령어를 수행합니다.

sqlite3 .svn/wc.db "select * from work_queue"

 

위와 같이 쿼리를 날리는 이유는, TortiseSVN 이 형상관리를 위해 SQL DB 를 사용하기 때문입니다.

 

 

큐에 있는 대상이 출력되면 해당 출력은 DELETE 합니다.

큐에 있는 파일을 삭제하는거지 실제로 물리적 파일이 삭제되는게 아니기 때문에 걱정하지 않으셔도 됩니다.

sqlite3 .svn/wc.db "delete from work_queue"

 

이렇게 큐에서 삭제한 후에 다시 Cleanup 을 수행하니 이번에는 폴더가 Lock 이 되었다는 에러메시지가 나옵니다..

에러메세지

Cleanup failed to process the following paths

FOLDER Working copy FOLDER locked.

FOLDER is already locked.

Please execute the 'Cleanup' command.

 

이번에는 락에 있는 폴더 대상을 삭제시켜 줍니다.

마찬가지로 물리적 삭제가 아니기 때문에 안심하셔도 됩니다.

sqlite3 .svn/wc.db "delete from wc_lock"

 

이제는 Clean up 이 정상적으로 수행되었습니다.

다시 Add , Update , Commit 등의 작업을 수행할 수 있게 되었습니다.

 

반응형
반응형

 

TortoiseGit 을 설치한다음 git 을 설치 하는데 git 은 다음만 계속 눌러서 설치하면 된다

 

 

 

 

로그인시 gitlab 의 username 과 pw 를 입력

 

 

이 값은 GitLab에서 Profile Settings 메뉴로 들어간 뒤 SSH Keys 항목

으로 들어가 키 내용을 붙여 넣은 후 Add Key하면 등록이 완료됩니다.



단계7. TortoiseGit의 Settings 메뉴에 들어가서 Remote에 기록한 origin 항목에 아까 저장한 private 키 파일을 연결하면 GitLab을 사용할 준비가 모두 완료 되었습니다. 

 


 

 

제가 사용하는 TortoiseGit에는 TortoiseSVN과 다르게 GUI에서 ignore pattern을 제공하지 않습니다.

그래서 무시할 패턴을 작성한 파일을 수동으로 생성해야 합니다.

2가지 방법이 있습니다. ".gitignore" 파일 생성, ".git/info/exclude" 파일 변경
두가지 모두 파일의 내용은 동일합니다.

우선 .gitignore 방식으로 설명합니다.

1, 작업 디렉토리 최상위에 ".gitignore"파일을 생성합니다.
(또는 작업 디렉토리 최상위의 ".git/info/exclude"파일을 오픈합니다.)

2, 위의 파일을 메모장 등으로 엽니다.

3,  원하시는 제외 패턴을 작성하고 파일을 저장 합니다.(끝)

패턴 작성 시 참고사항은

# 이후의 내용은 주석 처리 됩니다.

제가 사용하는 델파이의 무시 패턴은 아래와 같습니다.(.gitignore 파일은 첨부합니다.)

*.dcu

*.~*

*.dproj.local

*.identcache

__history

*.drc

*.map

*.zip

*.exe

*.dll

*.elf

 .gitignore
다른 패턴은 아래 링크를 확인하세요.
https://github.com/github/gitignore
  

 

 

 

 

push 유저 이름 세팅

 

 

 

ref : https://indiegd.blogspot.com/2016/12/tortoisegit-gitlab-ssh-key.html

ref : https://blog.hjf.pe.kr/45


ref : http://osgl.ethz.ch/training/Tutorial_GitLab_Webstorm_TortoiseGit.pdf

반응형
반응형



git 과 연동하여 소스트리(source tree) 최신버전으로 리소스를 push 하려고 할 때 


아래와 같은 내용이 보인다면 git 에 유저에 대한 tocken 이 추가되어 있지 않기 때문에 발생하는 에러인데

 


git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master

Pushing to git@gitlab.com:계정명/프로젝트명.git

remote: GitLab: API is not accessible        

To gitlab.com:계정명/프로젝트명.git

 = [up to date]      ~~~~~ -> ~~~~~~~~~~~~~~~

 ! [remote rejected]   master -> master (pre-receive hook declined)

error: failed to push some refs to 'git@gitlab.com:계정명/프로젝트명.git'




이때는 git 홈페이지에서


Access Tockens -> Personal Access Tockens 페이지에서 


Add a personal access tocken 란에서


Name 과 Expires at  을 각가 채운후 지정하고 싶은  Scopes 를 선택한다음


Create persoan access tocken  을 눌러 접근 토큰을 생성해주면 push 가 가능해진다







반응형
반응형



다른 부분은 그럭저럭 따라하지만 Generate 한다음 상단 박스부분이


키라는 것이 좀 애매한 부분이라서 직관적으로 와닿지 않는 부분이 있다


정확하게 저장해주면 좋은데 public 키와 상단 박스키의 내용이 앞뒤로 


내용이 약간 다르다







소스트리로 Git SSH 키 사용하기 



Git를 할 때, HTTPS로 하는 것보다는 SSH로 하는 것이 보안상 더 안전합니다.


SSH는 계정 및 암호뿐 아니라 상호간 암호 키를 제출해야 합니다.

또한 모든 전송 데이터가 암호화되며 익명을 사용할 수 없습니다.


아틀라시안의 소스트리를 사용하면 좀 더 수월하게, GUI 환경에서 SSH를 사용할 수 있습니다.

https://www.sourcetreeapp.com/


아틀라시안은 비트버킷이라는 자체 Git 호스트를 운영하고 있지만

소스트리는 어떤 Git에서도 작동합니다.



먼저, SSH를 사용하려면 키쌍을 만들어야 합니다.

소스트리에서 키 생성기를 바로 실행할 수 있습니다.


상단 메뉴의 도구 > SSH Key 생성 또는 불러오기

를 선택합니다.

이것은 

(프로그램 파일)\Atlassian\SourceTree\tools\putty\puttygen.exe

를 실행한 것과 같습니다.

 


Generate 버튼을 선택합니다.

이때 마우스를 이리저리 움직여줘야 합니다.

(마우스의 움직임이나 위치를 랜덤 시드로 사용하는 모양입니다.)




오른쪽 아래의 Save private key를 선택해서 적당한 위치에 저장합니다.

이 프라이빗 키는 클라이언트 측에서 제출해야 합니다.


상단 읽기 전용 택스트 박스에 나와 있는

ssh-rsa로 시작하는 퍼블릭 키도 따로 복사해서 저장합니다.

퍼블릭 키는 서버 측에서 제출해야 합니다.


프라이빗 키는 

소스트리 상단 메뉴의 도구 > 옵션 > 일반 탭

에서 고를 수 있습니다.


그런데 프라이빗 키를 실제로 제출하는 프로그램은 소스트리가 아니라 Pageant라는 녀석입니다.


시스템 트레이에 이미 실행이 되어 있습니다.

그렇기 때문에 이 변경사항은 즉시 반영이 되지 않고, 소스트리를 재시작해도 반영되지 않습니다.


오른 클릭해서 종료시킨 다음 소스트리를 다시 켜줍니다.

그러면 이 녀석이 소스트리와 함께 자동으로 켜지면서 반영이 될 것입니다.


언제든지 Pageant를 오른 클릭해서 View Keys를 선택하면

키가 제대로 등록되었는지, 어떤 키를 제출하고 있는지를 확인할 수 있습니다.



이제는 퍼블릭 키를 등록할 차례입니다.


퍼블릭 키는 서버가 제출해야 합니다. 즉, 비트버킷이나 기트허브에서 제출해야 합니다.

이를 위해서는 사용자 계정 세팅에서 키를 등록해야 합니다.

각 호스트 사이트에 로그인 한 뒤 개인 설정을 보면 SSH 키 등록 항목이 있습니다.

여기에 아까 복사해뒀던 퍼블릭 키를 등록합니다.





만약 프라이빗 키(ppk)는 있지만 퍼블릭 키를 잃어버렸다면

앞서 사용한 키 생성기의 하단 Load 버튼을 눌러 

프라이빗 키를 불러오면 다시 퍼블릭 키를 볼 수 있습니다.



이제 양쪽에 SSH 키를 등록했으니 SSH로 작업을 할 수 있을 것입니다.

리모트 리포지토리의 프로토콜을 HTTPS에서 SSH로 바꿉니다.

소스트리 상단 메뉴의 저장소 > 저장소 설정 > 원격 탭

에서 수정할 원격 이름 항목을 선택하고 하단의 편집 버튼을 누르면 원격 주소를 변경할 수 있습니다.


그런데 막상 소스트리에서 풀이든 푸시든 해보면 시간이 아무리 지나도 완료가 되지 않습니다.

메시지 창을 펼쳐보면 다음과 같은 메시지가 나옵니다.

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 aa:d1:aa:00:bb:c0:b0:a0:d0:e0:f0:a0:a1:00:11:ee
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.

최초로 SSH를 사용한 서버의 경우, 등록되지 않은 호스트라면서 이런 메시지가 나타나게 됩니다.

명령 프롬프트를 켜고
(프로그램 파일)\Atlassian\SourceTree\tools\putty
로 이동합니다.

plink.exe (서버 호스트 이름)
을 입력합니다.
예를 들면,
plink.exe github.com

그러면 위와 똑같은 메시지가 나오며, y를 입력해서 진행합니다.
이때, 계정과 암호를 묻는데 굳이 입력하지 않고 엔터를 쳐서 끝내도 됩니다.


이제 정말로 SSH를 소스트리로 쓸 준비가 끝났습니다.
이전과 마찬가지로 작업을 하면 됩니다.


ref : http://donggas90.blog.me/220690109105


반응형
반응형

http://stackoverflow.com/questions/1265915/how-to-delete-a-workspace-in-perforce-using-p4v



In P4V click View > Workspaces

If the workspace to be deleted is not visible in the list you may have to uncheck the box Show only workspaces available for use on this computer

Right-click the workspace to be deleted and choose Edit Workspace 'My_workspace'

On the Advanced tab uncheck the box Locked: only the owner can edit workspace settings > then click OK

Now back on the Workspaces tab of Perforce right-click the workspace to be deleted and chooseDelete Workspace 'My_workspace'

P4V should remove the item from the drop-down list when clicking on it.

There is a case where a previously deleted workspace remains in the drop-down list, and P4V displays the following error:

P4V Workspace Switch Error. This workspace cannot be used on this computer either because the host field does not match your computer name or the workspace root cannot be used on this computer.

If this error occurs, the workspace(possibly on another host) may have only been unloaded. Click the P4V Workspaces Recycle bin

P4V Recycle

In the resulting Unloaded Workspaces window right-click the offending workspace and chooseDelete Workspace 'My_workspace'. P4V should now remove the workspace item from the drop-down list.


반응형
반응형


http://vip125.blog.me/220445920670


개발자라면.. SVN을 많이 사용하고 계실겁니다.. 

그런데 SVN 서버를 구축하는 방법을 알고 계신분들은 많을지 모르겠네요..


시작하기전 SVN Server 를 다운로드 받으셔야 됩니다.

https://www.visualsvn.com/server/


▲ 오른쪽 상단에 있는 다운로드를 클릭하시고, 하단 32/64bit 중 택일하여 다운로드 받으시면됩니다. 


▲ 설치를 진행합니다.. Next..

▲ 체크해주시고 Next..

▲ 딱히 다른걸 체크할 필요는 없으니.. 그냥 그대로 Next..

▲ 여기에서 일반적으로 설치 하실때에는 StandardEditon 을 선택하시면 됩니다.

    그리고 경로 설정하신후 Next를 눌러주시면 됩니다. (사진이 빠졌어요 ㅠㅠ)

▲ 그럼 최종적으로 설치가 이루어지고 마무리가 됩니다.


※ 설치가 완료되면 VisualSVN Server 를 실행시켜 줍니다. 

▲ 위와 같은 화면이 뜨실겁니다 'ㅅ '! 정상적인 설치가 된거죠..


▲ SVN 등록을 한번 해봅시다..

   Repositories 의 우클릭하여 Create New Repository 를 선택합니다.


▲ 바로 다음을 클릭합니다.

▲ SVN 프로젝트명을 입력하신후 다음으로 갑니다.

▲ 역시 다른거 손댈필요없이 다음!!

▲ 마찬가지로 다음을 클릭해줍니다.

▲ Repository URL 이 SVN 경로입니다.

   MASTER 이라는 부분은 해당 서버의 IP를 넣어주시면 접속이 가능하기 때문에

   이클립스에서 해당 주소로 SVN 을 등록해주시면 됩니다.


▲ 추가된 web2..

   이클립스와 연동하신후 커밋을 해주시면 이쪽에 구성이 쭉 되어 올라가게 될겁니다..

   개발하시는데 SVN 정도는 알아주셔야 파일관리 하시기 편하실겁니다 ' ㅇ'!!


그외 여러가지 기능들이 있으나, 찾아보시면 쉽게 아실겁니다.


도움 많이 되시길 바랍니다.


반응형
반응형

오래전 버전으로 되돌리기 할대는 먼저 소스를 최신버전으로 revert 한다음 되돌리고자 하는 버전으로 revert to this revision 한다


만일 특정리비전으로 되돌렸는데 병합등의 문제로 컴파일 에러가 나면  소스를 revert 한 다음 최신소스로 업데이트 받아본다

반응형
반응형

소스머지 전략인지 뭔지 땜시 svn 매뉴얼 학습 중... 기본이 되는 branches 와 merge 에 대해서 정리해 봅니다.
뭐.. 나중에라도 까먹지 않기 위해서... ^^;;
그냥 branching 하는 거랑 merging 하는 거니까.. 아주 심플한 jsp 파일에서 hello world 로 테스트 진행 합니다.

subversion 사이트 들어 가면 있는 파일 인데요.
걍 올려 봅니다.. :)

 svn-book.pdf


1. 테스트를 위한 web project 를 하나 생성해서 trunk 에 올립니다.


2. 해당 프로젝트에서 마우스 우클릭 하신 후 아래와 같이 Team -> Branch/Tag... 선택 합니다.

3. Copy to URL 에 branches/RB-201204162 로 입력하고 Next 합니다.

4. Copy Revision 화면에서 그냥 HEAD revision in the repository 에 놓고 Next 합니다.

5. Branch/Tag Comment 에 comment 넣고 Finish 합니다.

6. SVN explorer 로 확인해 보시면 생성한 branch 가 보이실 겁니다.

7. 자, 이제 Branching 한 넘을 가지고 소스코드를 고친 후 merge 를 해봅시다.

RB-201204162 를 checkout 받고, index.jsp 를 고치고, commit 을 합니다.

8. RB-201204162 를 trunk 로 merge 를 해봅시다.
trunk 프로젝트에서 마우스 우클릭 Team -> Merge 를 선택 합니다.

9. 기본 값인 Reintegrate a branch 를 선택해서 진행을 합니다.

10. No uncommitted modifications 나 Working copy at a single revision 에서 빨간 줄 나오시는 분은 commit 이랑 update 한번 해주시면 됩니다.

11. Merge 할 대상을 선택 합니다.

12. Next 후 Finish 하시면 Merge 가 수행 되는 것을 볼 수 있습니다.

13. index.jsp 파일을 수정했으니 updated 된 파일이 1개 나오게 됩니다.

14. merge result 확인하기

15. merge 결과를 확인하고 trunk 의 index.jsp 파일을 commit 할지 판단 하셔서 올리시면 되겠습니다.










SVN 병합기능|

2011.07.14 17:07

여러분 소스 관리를 하시다 보면 꼭 소스 세이프의 한계를 느끼실껍니다.

저는 svn을 새로 도입 해봤는데요.

나름 정리 해봅니다.

 

 

먼저 Subversion에서 Merge Project를 선택합니다.

Branch Project 를 해서 먼저 프로젝트를 분기 시켜서 개발을 하시다 개발이 완료 된 경우

기존의 프로젝트에서 분기한 프로젝트를 병합하는 기능입니다.

 

 

병합방법이 나오는데 자세히는 모르겠고 저는 두번째 방법을 선택했습니다.

현재 기준 프로젝트에서 새로 분기한 프로젝트를 병합하는 방법입니다.

 

 

Merge From에서 분기한 ( 새로 분기해서 작업한 프로젝트) 선택하시면 됩니다.

옆에 보시변 dev/branches 란 폴더 안에 제가 따로 작업했던 프로젝트 경로 입니다.

 

 

/dev/branches/ultra74/WebAdmin 에서  분기해서 작업했던 프로젝트를 선택합니다.

work Copy는 현재 내가 물리적인 작업 PC를 말하는거구요.

url 은 svn 서버 경로 입니다.

결국 병합이 되면 기존에 기준 소스로 병합이 되어져 올라가는 것입니다.

 

자 그럼 병합할 소스들이 셋팅이 되어 졌습니다. 넥스트 버튼을 누릅니다.

 

 

어떤식으로 병합할꺼냐 묻는건데 졸라 말 많습니다.

저는 그냥 소스가 다를 경우 나에게 물어 봐라 고 설정했습니다.

보통은 자동으로 병합해주는데 지가 보기에 난해 한거는 다시 묻습니다.

아주 상세하게 두소스를 비교 해주면서 묻는데 거기서 에디터로 보시고 수정후에 저장해주시면 병합이 됩니다.

 

어떻게 병합하라고 지시도 했고 그 지시한 사항을 한번더 보여줍니다.

바이너리도 가끔씩 묻기는 하는데 바이너리는 걍 패스 하고 다시 컴파일 해주면 되니까..

지나가시면 됩니다.

 

처음에 소스 세이프를 섰는데 그것까지 체크를 해버리네요.

걍 오케이 눌러 버립니다.

ㅎㅎㅎ

 

\

이게 끝난 화면인데 ㅋㅋ WebAdmin은 제가 고친게 없더군요.

사실은 스토어 프로시져만 고쳤던것이었습니다.

만약 고친게 있다면 고친 파일 갯수를 표기 해줍니다.

이렇게 하면 로컬에 있는 소스가 병합이 되어 집니다.

처음은 힘든데 써보니 공짜 치고 괜찮은듯합니다.

이제 소스 관리 힘들지 않게 됐네요.

^^

그럼 수고 하세요.

 

반응형
반응형

BLOG main image



만약 현재 작업하고 있는 local 이 최신 파일이고 이 파일로 commit 해야 한다면


현재 local 을 빽업해놓고 원본을 update 받음 다음 빽업의 svn 파일을 지우고 업데이트 받은 파일에 빽업한것을 덮어씌우면 됨











http://blog.naver.com/sharpyoo?Redirect=Log&logNo=10102016073

SVN을 이용해서 커밋을 하다가 보면 아래와 같은 에러 메세지가 뜨면서

커밋이 안될 때가 있다.


 svn: Commit failed (details follow):

svn: File or directory 'main.svn' is out of date; try updating
svn: resource out of date; try updating

이것은 현재 SVN 서버에 저장된 소스의 버전과 내가 Local에서 작업한 소스의 버전이 맞지 않아 발생한다.

즉, Local에서 작업한 소스 버전이 SVN서버의 버전에 있는 소스보다 과거의 소스를 받아서 계속 작업을 해왔다면

소스 버전이 맞지 않아 새로 수정한 소스 조차도 날짜가 맞지 않는 다고 나온다.


이럴 때는 기존의 Local에 있는 소스를 다 날리고, 새로게 업데이트를 받아서

수정한 부분을 Merge해서 다시 빌드한 다음에 올려야 제대로 올라간다.

반응형

'버전관리' 카테고리의 다른 글

tortoise svn 특정 버전 되돌리기  (0) 2013.09.09
SVN branching & merging , SVN 병합기능  (0) 2013.05.25
anksvn 과 winmerge Diff 연동  (0) 2013.02.16
svn 파일 이름변경  (0) 2013.02.02
중간 commit  (1) 2013.01.13
반응형

http://andromedarabbit.net/wp/ankhsvn/

http://blog.naver.com/saram95/90093439339



anksvn 과 winmerge Diff를 사용하고싶을때


"C:\Program Files (x86)\WinMerge\WinMergeU.exe" -e -x -ub -dl "%bname" -dr "%yname" "%base" "%mine"





VS - 도구 - 옵션 - Source Control - 플러그인 선택 AnkhSVN 으로 설정

VS - 도구 - 옵션 - Source Control - Subversion




문제점

AnkhSvn과 Visual Assist X의 충돌

안타깝게도 Visual Assist X과 AnknSvn이 충돌을 일으키는 기능이 하나 있다. 바로 커밋! 커밋할 때 Visual Assist X이 커밋 로그 창에 함수 목록을 보여 주려 하고 이 때문에 글자가 안 써 진다. Visual Assist를 끄던가, 메모장에 로그를 써서 커밋 로그 창에 붙여넣어야 한다.

반응형
반응형

svn 에서 이름 변경후

복사된 사본을 체크아웃하여 로컬 디렉토리에 복사되도록 한다음 원본 삭제

반응형
반응형

http://kblog.popekim.com/

2013년 1월 10일 목요일

Subversion에서 Private Depot 사용하기(Mercurial을 이용)

Private Depot 얼마나 오랫동안 꿈꾸어 오던 것인지... -_-;

SVN과 같이 중앙 public depot을 사용하면 잘못된 코드를 체크인 했을때 그 때문에 피해를 입는 사람이 많다. 고로 제대로 작동안하는 코드를 집어넣으면 졸 욕을 쳐먹는다 -_-;

그래서 보통 코드가 제대로 돈다고 확인할때까지, 또는 코드를 보기 좋게 잘 다듬을 때까지 check-in을 안하곤 한다..... 이것의 문제는 한 1주일정도 체크인 없이 로컬 컴퓨터에서 계속 작업하는 경우가 있는데.. 그러다가 어느순간...

'아... 3일전에 만들어놨다가 제대로 안돌아서 지워버린 코드를 다시 쓰고 싶은데...'

라는 후회가 드는 경우가 있다는 것.... 이걸 미리 체크인 해놓았다면 단순히 버전 되돌리는 걸로 끝날 일... 중앙 depot시스템 때문에 못한거지... 퉤... - _-;

그래서 git이나 mercurial(hg)등의 DVCS (Distributed Version Control System)이 나름 각광을 받고 있었다. 하지만 게임개발을 하는 나에게 중앙서버가 없는 중구난방식의 분산 방식은 좀 별로였다. 내가 원한 것은 완전한 분산방식이 아니라.... 개인(private) depot에는 아무때나 내 맘대로 체크인 해놓고..... 나중에 준비가 되면 여태까지 해왔던 일들을 한번에 중앙 서버에 집어넣는 거였다. 한마디로 매일밤

"오늘까지 한 일. 어쩌구 저쩌구... 현재 컴파일은 안됨 ㅋㅋ"

이라는 commit log를 작성하고 싶었다고나 할까....

Perforce에서는 perforce sandbox를 사용하여 이 문제를 해결했었다. 하지만 Subversion을 사용할 때는 마땅히 어떻게 할 방법이 없었다. git-svn이라던가 hg-svn 등의 놈들이 있지만 이렇게 그다지 믿음이 가지 않았다. 난 모든간에 단순하고 간단한걸 좋아해서 이렇게 두가지 기능을 대충 합치는 프로그램을 안좋아한다. 사용하다가 말도 안되는 곳에 문제가 생겨서 골치만 아픈 경우가 너무 많거든...

하드디스크에 체크아웃 해둔 SVN 루트 디렉토리에 git이나 mercurial을 local depot를 만드는 법도 한 때 생각해봤으나.. 각 폴더마다 들어가 있던 .svn 폴더때문에 그것도 쉽지 않았다... 그래서 한동안 손을 들고 있었으나... 이게 왠일 SVN 1.7부터 폴더 구조가 바뀌었다. 이젠 루트폴더에 .svn폴더 하나만 넣는다.

이거 때문에 신나서 재빨리 시도해보았다.. 잘된다.. ㅠ_ㅠ

방법은 간단... 난 mercurial(HG)를 사용했다. 윈도우즈에서 git 쓸려면 SSH 설치며 뭐며 머리가 졸라 아픈데.. mercurial은 그냥 TortoiseHg만 깔면 된다.. 다른거 신경쓸거 하나도 없다...

모든간에 졸 간단한 방법:
  1. SVN checkout이 되어있는 root folder로 간다. SVN 버전이 1.7 미만이라면 1.7이상으로 업글한 뒤 현재 checkout 되어있는 소스트리를 최신버전으로 업데이트 해줘야 한다.
  2. 빈공간에 오른쪽 버튼을 누르고 TortoiseHg > Create Repository Here를 해준다.

  3. Init 대화창이 나오면. 뭐 다른 거 손 볼 필요 없다. 그냥 Create를 눌러준다.
  4. 이제 모든 파일이 제대로 보인다....

  5. 이제 private depot에 체크인 할때는 Hg Commit을... 중앙 depot에 체크인할때는 SVN Commit을 해주면 된다.
아, 정말 단순하고.. 깔끔한 방법이다.... 맘에 들어.. ㅠ_ㅠ

이 방법의 단점은 mercurial로 private depot에 체크인 했던 것은 changelist description을 자동으로 복사해올 방법이 없다는건데... 음.... 난 차라리 이 방법이 낫다. 매일 일하며 체크인 해 놨던 내용들을 쭈욱 살펴보면서 요약해서 적을 수 있으니까. 중앙서버까지 mercurial로 만들어 놓으면 local depot에 체크인 했던 changelist들이 전부다 개별적으로 submit된다. 맘에 안든다.... 뭐 collapse 익스텐션을 쓰면 이것도 해결 된다지만.. 역시 기본기능이 아닌 건 사람들이 그닥 많이 사용안하니 제대로 검증되지 않아서... 골치아픈 일이 많기 마련.... 따라서 extension은 그닥 쓰고 싶지 않아.....

어쨌든 이 방법 좋다... 만세~

반응형
반응형
http://blog.naver.com/eddykim72/40040493195



Version Control System에서 공통적으로 사용하는 용어들

 

저의 잘못된 번역으로 인한 오해와 잘못된 지식의 전달을 우려해서 원문과 함께 번역문을 기술합니다.

! NOTICE ! This article is excerpted from http://en.wikipedia.org/wiki/Revision_control

 

Baseline (베이스 라인)

    An approved revision of a document or source file from which subsequent changes can be made.

    계속 변경된 문서 또는 소스파일의 승인된 리비전

 

Branch (가지,분기,브랜치)

    A set of files under version control may be branched or forked at a point in time so that, from that time forward,

    two copies of those files may be developed at different speeds or in different ways independently of the other.

    시간상 어떤 시점에서 버전 관리하의 한 셋트의 파일들은 분기될 수 있다. 그래서 그 분기 시점 이후 이러한 파일들의 두 복사본들은

    서로 독립적으로 다른 속도로 또는 다른 방법으로 개발될 수 있다.

   

Check-out (체크아웃) 

    A check-out (or checkout or co) creates a local working copy from the repository. Either a specific revision is specified,

    or the latest is obtained.

    체크 아웃은 저장소로 부터 로컬 작업본을 생성한다. 특정 리비전이 명시되거나 최근 리비전이 획득된다.

 

Commit (커밋, 체크인)

    A commit (check-inci or, more rarely, install or submit) occurs when a copy of the changes made to the working copy

    is written or merged into the repository.

    작업본에 변경이 있거나 저장소로 병합되었을 때 커밋이 일어난다(발생한다).

 

Conflict (충돌)

    A conflict occurs when two changes are made by different parties to the same document,

    and the system is unable to reconcile the changes. A user must resolve the conflict by combining the changes,

    or by selecting one change in favour of the other.

    충돌은 동일한 문서에 다른 부서에 의해 두개의 변경있을 때 그리고 시스템이 변경사항들을 조정, 일치시킬수 없을 때 발생한다.

    사용자는 변경사항들을 결합하거나 하나의 변경을 선택함으로써 충돌을 해결해야만 한다.

 

Change (변경)

    A change (or diff, or delta) represents a specific modification to a document under version control.

    The granularity of the modification considered a change varies between version control systems.

    변경은 버전 관리하에 문서상에 특정 수정을 말한다.

 

Change list (변경 리스트) 

    On many version control systems with atomic multi-change commits, a changelistchange set, or patch identifies the set of

    changes made in a single commit. This can also represent a sequential view of the source code, allowing source to be examined

    as of any particular changelist ID.

    극소 다중 변경 커밋을 지원하는(?) 많은 버전 관리 시스템에서, 변경 리스트, 변경 셋, 패치는 단일 커밋에 있어서의 변경사항들의

    한 셋트이다. 이는 소스코드의 순차적인 관점을 나타내며, 어느 특정한 변경 리스트 ID로서 소스가 검사되도록 한다.

 

Dynamic stream (동적 스트림) 

    A stream (a data structure that implements a configuration of the elements in a particular repository) whose configuration

    changes over time, with new versions promoted from child workspaces and/or from other dynamic streams. It also inherits

    versions from its parent stream.

    스트림(특정 저장소에서 요소들의 구성을 수행하는 데이타 구조)의 구성은 자식 워크스페이스 또는 다른 동적 스트림에 의해 

    시간에 따라 변경된다. 이는 부모 스트림으로 부터 버전을 상속한다(물려받는다).

  

Export (엑스포트)

    An export is similar to a check-out except that it creates a clean directory tree without the version control metadata used in a

    working copy. Often used prior to publishing the contents.

    엑스포트는 작업본에서 사용되는 버전 관리 메타데이타 없이 순수한 디렉토리 트리를 생성한다.

    종종 항목들을 공표하기에 앞서 사용된다.

 
Head (헤드, 최신 리비전) 

    The most recent commit. 가장 최근의 커밋

 
Import (임포트) 

    An import is the action of copying a local directory tree (that is not currently a working copy)

    into the repository for the first time.

    임포트는 처음에 (현재의 작업본이 아닌) 로컬 디렉토리 트리를 저장소로 복사하는 작업이다.

 

Mainline (메인 라인) 

    Similar to Trunk, but there can be a Mainline for each branch.

    Trunk와 유사하지만 각 브랜치에 대한 메인라인이 있다.

 

Merge (병합) 

    A merge or integration brings together two sets of changes to a file or set of files into a unified revision of that file or files.

    병합 또는 통합은 파일 또는 파일 세트상의 두 변경 세트를 파일 또는 파일들의 단일 리비전으로 만든다.

  • This may happen when one user, working on those files, updates their working copy with changes made, and checked into the repository, by other users. Conversely, this same process may happen in the repository when a user tries to check-in their changes.
  • It may happen after a set of files has been branched, then a problem that existed before the branching is fixed in one branch and this fix needs merging into the other.
  • It may happen after files have been branched, developed independently for a while and then are required to be merged back into a single unified trunk.
Repository (저장소)
    The repository is where the current and historical file data is stored, often on a server.
    저장소는 현재 그리고 옛 파일 데이타가 서버상에 저장되는 곳이다.
 
Reverse integration (역 통합)
    The process of merging different team branches into the main trunk of the versioning system.
    다른 팀 분기를 버전 시스템의 주요 본체(trunk)로 병합하는 프로세스이다.
 
Revision (리비전, 버전)
    A revision or version is one version in a chain of changes.
    리비전 또는 버전은 일련의 변경사항들에 있어서 한 버전이다. 
 
Tag (태그)
    A tag or release refers to an important snapshot in time, consistent across many files.
    These files at that point may all be tagged with a user-friendly, meaningful name or revision number.
    태그 또는 릴리즈는 일관된 많은 파일들과 시간상의 중요한 스냅샷을 참조로 한다.
    이 시점에서의 파일들은 친숙한, 의미있는 이름 또는 리비전 넘버로 태그될 수 있다.
 
Trunk (트렁크, 본체)
    The unique line of development that is not a branch (sometimes also called Baseline or Mainline)
    분기가 아닌 개발의 유일한 라인이다. (때때로 베이스 라인 또는 메인 라인으로 불려진다.)
 
Resolve (해결)
    The act of user intervention to address a conflict between different changes to the same document.
    동일 문서상에 다른 변경사항들 사이의 충돌을 설명하기 위한 사용자 중재 활동이다.
 
Update (갱신)
    An update (or sync) merges changes that have been made in the repository (e.g. by other people) 
    into the local working copy.
    갱신은 (다른 사람에 의해) 저장소에서의 변경 사항을 로컬 작업본에 병합한다.
 
Working copy                                                                              
    The working copy is the local copy of files from a repository, at a specific time or revision. All work done to the files in a
    repository is initially done on a working copy, hence the name.
    작업본은 저장소로 부터 특정 시간 또는 리비전의 파일 로컬 복사이다.
    저장소에서 파일들에 모든 작업의 완료는 초기에 작업본에 완료된다.

반응형
반응형

http://cafe.naver.com/vslinlin/50

 

 

먼저 [3탄] TortoiseSVN을 이용한 업데이트 글에 다시 빌드하라는 내용은 빠졌는데
혹시나 하고 모르실 수도 있기에 언급해드립니다.
업데이트 하신 후 소스 수정하시고 빌드하지 않으면 업데이트 하나마나입니다.^^
까먹지 마시길...



이번에 다뤄질 내용은 TortoiseSVN 응용입니다.

검색을 활용하면 얼마든지 사용법은 나옵니다.
그래서 여기서는 소스구축 후 패치파일 제작과 적용만 소개하고자합니다.

업데이트 할 때마다 매번 config 폴더의 파일을 수정해야합니다.
물론 처음 시작할 땐 일부로라도 그렇게 진행하시는 게 좋습니다.
구축 후 설정법을 익히는 데 도움이 될 수도 있습니다.

이제 매번 똑같은 설정 바꾸기 귀찮아지게 되면 한번쯤 "쉽게 하는 방법 없을까"라는
고민은 대부분 구축해본 분들이라면 해보셨을꺼라 생각합니다.
물론, 여러가지 방법이 있지만 여기서는 TortoiseSVN으로 패치파일을 만들고
다시 적용하는 법을 소개하겠습니다.

1. 주요 변경파일 패치파일 제작

우선 아래의 폴더로 이동해서 각각의 파일들을 본인 서버 구성에 맞게 수정합니다.
수정할 때는 EditPlus 등의 프로그램을 이용하시면 편리합니다.

\AE-go_GameServer\config\administration\
\AE-go_GameServer\config\main\
\AE-go_GameServer\config\network

\AE-go_LoginServer\config\network\


수정을 다 마치고 저장하면 아래 그림처럼 아이콘에 느낌표 표시가 생깁니다.
이 느낌표의 의미는 내용이 원본 소스와 다르게 수정이 되었다는 의미지
파일에 문제가 있다는 표시가 절대 아닙니다.


해당 아이콘의 설명은 TortoiseSVN 설정에 보면 나와있으니 참고하세요.


아래와 같은 방법으로 패치파일을 만들겠습니다.
소스 최상위 폴더 오른쪽 마우스 클릭 -> -> TortoiseSVN -> 패치 생성


수정된 내역이 뜨고 체크가 된 파일들에 대한 패치 파일을 만들겠다는 내용입니다.


"저장 위치"를 선택하고 "파일 이름"을 쓴 다음 "저장" 버튼을 눌러주세요.


아래 그림처럼 패치파일의 내용을 보여 주면서 지정한 위치에 파일이 저장됩니다.


이로써 다음에 업데이트 후 한방에 변경하기 위한 패치파일 제작은 끝났습니다.


2. 리비전 업데이트하기 전 되돌리기

일단, 소스에 인위적인 수정이 들어갔으므로
업데이트 하기 전에 원본 소스로 되돌리는 작업을 진행합니다.
이유는 업데이트시 충돌이 발생할 수도 있기 때문입니다.
방법은 매우 간단합니다.
노보팩 기준으로 \SVN AIONEmu Source\aion-emu 오른쪽 마우스 클릭해서
아래 그림처럼 되돌리기를 실행해줍니다.
여기서 되돌리기란 원본 리비전으로 복원한다는 의미입니다.


모두 선택하고 확인을 누릅니다.


모두 진행된 후 확인을 눌러주면 원본 리비전으로 복원됩니다.



3. 리비전 업데이트

리비전 업데이트 합니다. 방법은  [3탄] TortoiseSVN을 이용한 업데이트 글에 나와있습니다.


4. 패치하기

빌드를 진행하기 전에 먼저 만들었던 패치파일을 이용해서 패치를 진행합니다.
패치파일에서 오른쪽 마우스 클릭해서 하는 방법과
소스폴더에서 오른쪽 마우스 클릭해서 하는 방법이 있습니다.

여기서는 패치파일에서 패치적용을 진행해보도록 하겠습니다.
아래와 같이 만들어진 패치파일을 오른쪽 마우스클릭 -> TortoiseSVN -> 패치 적용 클릭합니다.


위에서 패치 새성할때 소스의 최상위 폴더를 선택했듯이 패치 적용시에도 동일하게 선택합니다.


아래와 같은 창이 뜨면서 패치될 파일들을 보여주게 되는데그 창에서
오른쪽 마우스 클릭 -> Patch all을 실행합니다.
각각의 파일을 더블클릭하면 어떻게 수정이 되는지 TortoiseMerge를 통해서 확인할 수도 있습니다.


아래 그림처럼 패치가 완료되면 파일리스트 색상이 회색으로 바뀌면서
마지막 파일의 패치전과 패치후가 TortoiseMerge에 보여지게됩니다.


이로써 매번 수정해야하는 주요 설정 파일을
미리 만들어둔 패치파일을 통해 간단히 변경할 수 있습니다.

간혹 패치될 원본소스가 이전과 다르게 업데이트 되어 수정되는 경우도 있습니다.
그럴땐 패치될 파일을 보여줄때 빨간색으로 간혹 나오기도합니다.
TortoiseMerge라는 프로그램이 충돌한 파일을 해결하는 역할도 하긴 하는데
되도록이면 이럴 경우엔 강제로 진행하기보다는
일단은 빨간색으로 나온 파일을 더블클릭해서


정상적으로 바뀌는 지 확인 한 후 패치를 진행하도록 합니다.
아래 내용의 뜻은
- 라고 표시되는 줄을 삭제하고
+ 라고 표시되는 줄을 넣겠다는 의미입니다.


다른 사람이 올린 패치파일을 적용하다보면 위와 같은 상황이 많이 생깁니다.
제가 마지막으로 올린 패치파일(유닉2021_kit_end.patch)도 현재 최신리비전에 적용시 충돌이 발생하며
정상적으로 병합도 되지 않는 문제가 발생합니다.
이를 개인적으로 충돌이 나지 않게 해결하는 방법은 분명히 있습니다.
원본과 패치되는 부분을 자세히 비교해서 수동으로 수정해 주는 것이 가장 현명하다고 판단됩니다.

이제 빌드하고 서버 구동하면 됩니다.
수고하셨습니다.

 

반응형
반응형

 

Global ignore Pattern : 부분에

 

아래와 같이 쓴다

 

*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store *.Debug Debug *.Release Release ipch *.sdf *.ipch *.exe *.ncb *.opt *.plg *.vsp *.lib LIBD LIB dump *.dmp errorReport log

반응형
반응형

누군가 퍼포스사이트의 기술도큐먼트를 번역해 놓은 것

 

원본 : http://www.perforce.com/documentation/perforce_technical_documentation

 

 

http://meongryul.tistory.com/30

Perforce Client (P4V) 사용법

 | 
Perforce는 현재 여기저기서 많이들 쓰고있는 소스 관리 시스템이다.
서버 설정방법은 내 알바 아니고, 이 시스템에 접근 할 수 있는 GUI를 지원하는 클라이언트(P4V)의 사용법을 적어둔다.
공식 싸이트의 내용이다.

P4V 사용법

P4V, the Perforce Visual client, is Perforce's cross-platform graphical user interface. 
P4V는 퍼포스 비쥬얼한(그림으로 인터페이스가 구성된) 클라이언트인데 다양한 플렛폼을 지원하는 그래픽 유저 인터페이스다.
You can use P4V on Windows, Macintosh, UNIX and Linux computers and benefit from an identical interface regardless of platform. 
따라서 넌 윈도우에서건 맥에서건 유닉스나 리눅스에서건 P4V를 쓸 수 있다.
This introductory guide provides some Perforce basics and an orientation to P4V's layout and features. For more details about P4V, consult its online help. To learn more about Perforce, consult the user documentation on our Web site.
이 소개글은 퍼포스의 기본개념과 P4V의 화면구성과 요소들을 소개한다. 추가 보를 원하면 온라인으로 상담해라. 또 많은 정보가 웹싸이트에 문서로 있으니 참고해라
To use Perforce to manage files, you typically connect to a Perforce server using a client program like P4V. 
퍼포스를 사용해서 파일을 관리하기 위해, 대게의 경우 너는 P4V를 써서 퍼포스 서버로 접속할 것이다.
P4V enables you to check files in and out, and perform the various other necessary tasks. The following sections tell you how to perform basic tasks and point out powerful features and shortcuts.
P4V는 파일을 집어 넣거나 뺄 수 있고(check in, check out), 기타 다양한 필요 업무를 볼 수 있을 것이다. 아래는 그런 기본 내용이다.

Basic Concepts
개본 개념
P4V connects your computer to a Perforce server to move files between Perforce depots and your workspace, as shown below.
P4V는 파일을 퍼포스 메인 창구(이하 : Perforce depots)와 너에 워크 스페이스 사이에서 주고받기 위해 니 컴터를 퍼포스 서버로 연결한다.(아래 처럼)

(역자주 : 워크스페이스라는컨 '사용자의 로컬에 컴터에있는 공간'을 말하고 글로 파일들의 카피본이 들어간다고 표현하고 있고, P4V가 도는 니 컴퓨터는 서버에 접속되어있는 거다.. 라고 써있고. 서버란건 관리하는 중심 머신이라고 써있고, 디폿은 퍼포스의 관리 아래있는 파일들이 담겨있는 레포지터리 라는 뜻이고)

The definitions for these Perforce terms are as follows:
이런 퍼포스가 사용하는 용어는 아래와 같다.
Workspace: folders or directories on the client computer where you work on revisions of files that are managed by Perforce. 
워크 스페이스 : 클라이언트 컴터에 잇는 폴더 또는 디렉토리, 니가 작업하는 작업공간. 퍼포스가 파일 버전을 관리하는데 이를 리비전이라고 하고 넌 이 리비전으로 묶여있는 파일들을 워크 스페이스에서 쓰게 된다.
Client application: P4V (or another Perforce client application), running on your computer, sending commands to the Perforce server and receiving results (files, status information, and so on).
클라이언트 어플리케이션 : 니 컴터에서 도는 P4V (또는 다른걸) 말한다. 이 클라이언트란건 커맨드를 퍼포스서버로 보내고 결과(파일이나 상태 정보)를 받는다.
Server: the program that executes the commands sent by client programs, maintains depot files, and tracks the state of workspaces. The Perforce Server typically runs on a central machine, connected to client machines by the network.
서버 : 클라이언트한테 받은 커맨드를 실행시키고 depot를 관리하고, 워크스페이스들의 상태를 관리하고 있는 프로그램. 퍼포스 서버는 전형적으로 중앙의 머신에서 돌고 네트워크에 클라이언트들과 물려있다.
Depot: a file repository on the Perforce server. It contains all existing versions of all files ever submitted to the server. There can be multiple depots on a single server. The examples in this guide show a single depot.
디폿 : 서버내에 있는 파일 저장소. 존재하는 파일로부터 접수받은 모든 파일들이 버전단위로 존재한다. 한 서버에 다수의 depot이 있을 수 있다.
이 문서 내에서는 하나의 디폿만 다룬다.
Connecting to a Server
서버에 접속해보자.
To gain access to your depots, you must connect to a server. The first time you launch P4V, the Connection Setup Wizard (Macintosh: 
Connection Setup Assistant) guides you through the process of configuring a connection, during which you specify the server, user, and workspace.
디폿에 접근하려면 서버에 접혹해야한다. 니가 P4V를 키자마자 보이는건 '접속 위자드 창'인데 (이걸 맥에선 뭐라고 따로 한다) 얘가 접속 설정과정을
가이드 한다.
To launch the wizard/assistant in subsequent sessions, choose Connection > Set Up Connection...
키고나서 일반상태에있을 때 이 설정창을 다시 열고 싶다면 메뉴에 있다 찾아봐라.
Alternately, you can configure connection settings on a single dialog, as follows:
아래처럼 넌 커넥션을 교체 가능하게 설정 할 수 있다.
1.
P4V를 클릭해서 시작하면 아래 창이 보인다.
2.
Specify the following settings (your Perforce administrator can provide you with this information)
아래의 설정을 하라. (니네 시스템 관리자가 말해준데로)
Port: the port number assigned to the server
포트 : 서버에 할당된 포트 번호
User: your Perforce user name
유저 : 니 유저 아이디
Workspace: the name of your client workspace.
워크스페이스 : 니 클라이언트의 워크 스페이스 이름
To display a list of existing users and workspaces, click Browse. (The server and port must be specified before clicking Browse.)
If you have incorrectly specified a server setting, P4V displays a message like the following:
사용자와 워크 스페이스 리스트를 출력하기 위해서, Browse를 클릭해 봐라. (서버와 포트가 그전에 먼저 설정되있어야 한다.)
만약 잘못된 서버 세팅이 되어있다면 P4V는 아래와 같은 메세지를 출력한다.
Connect to server failed; check $P4PORT.
TCP connect to bigserver failed.
bigserver: host unknown.

3.
To connect, click OK. P4V displays its main screen, as shown in the following figure.
다썼으면 OK를 눌러라 아래처럼 메인 화면이 나온다.
The next section describes the main screen panes.
다음 섹션에서 메인 화면을 설명한다.

Navigating the Main Screen
메인 화면 보기.

The following figure points out the panes and important features of the main screen. 
아래 그림은 각 칸들과 중요한 요소들에 을 설명한다.
To see what a button or screen element does, hold the mouse cursor over it. P4V displays a descriptive tooltip.
버튼과 스크릭 속성들을 알아보기 위해 마우스 커서를 위에 갖다 대라. 툴팁 도움말을 보여줄것이다.
( 역자주 : 좌측 글 : 왼쪽 판 워크스페이스와 디폿 안의 파일과 폴더를 디스플레이 해준다.
오른쪽 상단 글 : 툴바 판은 판을 교채하고 하는 버튼들이 있고 한다.
우측 하단 글 : 우측하단 판은 선택된 오브젝트에 대한 세부 항목을 보여준다.
하단 글 : 로그 판은 서버 명령어들을 보여준다. 데시보다른건 현 상태와 진행하는 업무를 보여준다.)
Setting up your workspace
워크 스페이스 세팅하기
Your Perforce administrator can do this for you, but it's advisable to learn a few important aspects of configuring your workspace, specifically (1) configuring the client root directory and (2) configuring the client view.
퍼포스 서버 관리자가 니 워크스페이스를 세팅 해 줄수도 있다. 하지만 니 워크스페이스를 설정하는데 필요한 중요한 것들은 알아둘 필요가 있다.
특히 클라이언트 루트 디렉토리를 설정하는 것이나, 클라이언트 뷰를 설정하는것들이 중요하다
To define a workspace, choose Connection > New Workspace.... and, when prompted, enter a name for the workspace. To edit your current workspace specification, choose Connection > Edit Current Workspace... 
워크스페이스를 정의하기 위해선 Connection -> New Workspace로 가라 거기에 들어가서, 워크스페이스 이름을 쳐라. 현재 켜져있는 워크 스페이스를 정의하기 위해선 Connect -> Edit Current Workspace를 선택하라.

P4V displays the specification details in the lower portion of the right pane; for example:
참고로 세부내용은 우측 판낼의 하단부분에서 보여진다니( 역자주 : 왼쪽글 - 디폿에 니가 접근할 수 있는 파일을 제한한다. 니가 원하는 것들만 보이는지 한번 확인해라.
오른쪽 글 - 니 컴퓨터에 디폿내용이 담길 루트 디렉토리를 설정한다.)
To display and set the client view graphically, click the View tab. Browse to desired files and folders and context-click to include them or exclude them from the client view, as shown in the following figure.
클라이언트 뷰를 그림을 이용해서 세팅하고 디스플레이하기 위해 Veiw탭을 클릭해라. 원하는 파일들이나 폴더를 브라우저 버튼을 눌러서 오른 크릭해라.
그것들을 클라이언트 뷰에 넣고 빼기 위해 오른클릭(context-click)하라. 아래 그림에서 그걸 보여준다.

(역자주 : 해보니 어떤 것들을 넣고 빼고 하는게 클라이언트 뷰에넣고 빼긴 하지만 디폿의 클라이언트 뷰였다. 디폿은 위에서 말한데로 서버에있는 레포지터리다 거기다 넣고 빼고 하다니?)

Managing your Files
내 파일들 관리하기. 
To manage files using Perforce, you typically perform the following sequence of tasks:
퍼포스를 사용(?)하는 파일들을 관리하기 위해서, 넌 대게 아래와 같이 행동 해야 한다.
1.
Get files from the depot.
파일을 디폿에서 다운 받는다.
2.
Check out files you need to edit.
원하는 파일을 다운(Check Out) 한다. (역자주 : 채크아웃 했다는 말이 SVN과 좀 차이가 있어 보인다)
3.
Edit files.
파일을 편집한다.
4.
Check in your changes.
바꾼 파일을 넣는다(check in)
The following sections provide details about these and other common file management tasks.
아래 섹션은 이런저런 파일 관리 방법에 대한 세부 내용을 제공하고있다.

Getting files from the depot
디폿에서 파일 받기.
To copy files from the depot to your workspace:
디폿에서 파일들을 워크스페이스로 카피 받는 받법
1.
In the left pane, click the Depot tab.
왼쪽 판에 디폿 텝을 클릭하라
2.
Browse to the folder or file you want to retrieve.
니가 획득하기 원하는 폴더나를 찾아라.
3.
Context-click the file or folder. To get the most recent version, choose Get Latest Revision. To get an older version, choose Get Revision...and specify the version you want. 
그 파일이나 폴더를 오른클릭하라. 최신 버전을 받고 싶으면 Get Latest Revision을 누르고, 오래된 버전을 획득하고 싶으면 Get Revision을 누러서 원하는 리비전 번호를 정의해라.
In the Log pane, P4V displays a message like the following.
로그 판에서 P4V는 아래와 같은 메세지를 출력할 것이다.
p4 sync //depot/Misc/manuals/...#head
//depot/Misc/manuals/recommended_configuration.doc added c:\p4clients\bruno-1492\Misc\manuals\recommended_configuration.doc
//depot/Misc/manuals/triggers.doc added c:\p4clients\bruno-1492\Misc\manuals\triggers.doc
//depot/Misc/manuals/vendor_branches.doc added c:\p4clients\bruno-1492\Misc\manuals\vendor_branches.doc
Sync copied 3 files to workspace (including 3 that were added)
Sync removed no files from workspace
Sync completed with no warnings or errors.
(역자주 디폿에있는 어떤파일이 c:의 어디로 카피 되었는지 나와있다. 3개의 파일이 카피 되어잇는게 보인다.)
In the left pane, note that the files display green dots, indicating that they are present in your workspace
메인화면의 왼쪽판에서 파일에 초록색 점이 찍혀이는걸 유념하라. 니 워크스페이스로 들어왔다는걸 말한다.
:Before you can edit the file, however, you must check it out.
그런데 (그림)니가 그파일들을 애드트할수있기 전에 반드시 그것을 채크아웃해야 할 수 있을것이다.


Checking out files from the depot
디폿에서 채킹 아웃 하기.

To check out a file in your workspace:
니 워크스페이스에서 파일 하나를 채크아웃 하기 위해서.
1.
Browse to the desired file in the left pane Depot tab. 
원하는 파일을 디폿탭에서 채크아웃해라.
2.
Context-click the file and choose Check Out.
오른 클릭해서 채크아웃 하라.
In the Log pane, P4V displays a message like the following:
로그 판에서 아래와 같은 메세지가 나올 것이다.
p4 edit //bruno-1492/Misc/manuals/recommended_configuration.doc
//depot/Misc/manuals/recommended_configuration.doc#1 - opened for edit
Opened 1 files for edit
In the left pane, note that the file displays a red check mark, indicating that you checked it out:
왼쪽 판에서 붉은 채크가 된것을 확인해라 니가 그것을 채크 아웃했다는 표시다.
Note that, when you check out a file, Perforce adds it to a changelist, which is a list of related files. You can use changelists to group related files, 
니가 파일하나를 채크아웃했을때, 퍼포스는 그것을 체인지 리스트에 둔다는걸 유념해라. 채인지 리스트란건 관련된 파일들의 리스트를 말한다. 넌 채인지리스트를 관련된 파일들을 그룹화 하는데 사용 할 수 있다.
for example, all files that contain changes required to implement a new product feature. To view the changelist, choose View > Pending Changelistsor click in the toolbar.
예를 들면, 새로운 요소를 구현하기 위해 바뀌어진 부분을 가지고 있는 모든 파일들을 구룹화 하는 걸 예로 들 수 있다. 채인지 리스트를 보기위해 View > Paending Changelist를 보거나 툴바에 잇는 버튼을 클릭해라.
Now you're ready to edit your files.
이제 넌 에디트 할 준비가 되었다. (역자 주: 디폿에 있는걸 그냥 막 건들 수 있구나)
Editing files in your workspace
니 워크 스페이스에 있는걸 에디트 하기
To edit a checked-out file, double-click it (or context-click it and choose Open With, then select the desired application). P4V launches the corresponding editing application. Make changes and save the file. 
체크 아웃 된 파일들을 에디트하기위해서 그걸 더블클릭해라 (또는 오른클릭해서 나오는 메뉴에 Open With를 눌러라 그리고 원하는 어플리케이션(vi edit 같은)을 선택해라. P4V는 관련된 에디팅 어플리케이션을 킬것이다. 내용을 바꿀껄 바꾸고 저장하라.
To select an application with which to open a file, choose File>Open With>Choose Application. Note that you can configure editors on thePreferences dialog Editors tab. 
파일을 열 에디트 어플리케이션을 선택하기 위해서. File ->Open With -> Choose Application을 선택해라. 넌가 니가 에디터를 선호 다이얼로그 에디터 탭(Preferences dialog Editors tab)에서도 선택할 수 있다.

Diffing files to view your edits
니가 에디트한파일들을 디프 떠보기 (같은 파일에서 편집한 부분이 무엇인지 드러나도록 원본파일이나 원본에서 파생된 다른 파일과 비교해 보는 것을 Diff 뜬다 라고 한다.)
To enable you to see what changes you've made, you can compare (diff) your edited file with the version you checked out. 
니가 뭘 바꿨는지 확인하기 위해서, 네 에디트된 파일과 니가 채크 아웃했던 원본 파일과 비교 할 수 있다.
To diff, context-click the checked-out file in the left pane and choose Diff Against Have Revision. 
디프를 뜨기 위해, 왼쪽 판(pane)에서 채크 아웃된 파일을 오른클릭(context-click)하고 Diff Against Have Revision(디폿이 가지고 기존 버전의 파일과 디프뜨기)를 눌러라.

P4V launches P4Diff, displaying the differences between the two files. For example:
P4V는 P4Diff라는 퍼포스 디프 프래그램을 돌릴 것이다. 그놈이 투 파일간에 차이를 표시 해줄 것이다.
Discarding edits by reverting
되돌아가기를 통해서 에디트 취소하기.
If you decide you want to discard your changes:
만약 니가 니가 바꾼걸 취소하고 싶다면
1.
Context-click the file in the left pane and choose Revert. P4V displays a warning dialog. 
왼촉판에 있는 파일을 오른클릭해서 Revert를 눌러라. P4V는 경고 메세지를 출력한다.
2.
Click OK. In the Log pane, P4V displays a message like the following:
OK를 눌러라 아래 로그 판에 아래와 같은 메세지가 보일 것이다.
Checking your edits into the depot
니가 수정한 것을 디폿에 넣기
To check your changed file into the depot, perform the following steps.
수정한 파일을 디폿에 넣기 위해 아래와 같은 절차를 수행하라.
1.
Display pending changelists: click  in the toolbar. P4V displays a list of pending changelists, as shown in the following figure. To display the files in a changelist, expand it
아직 처리되지 않은 지연되어있는 채인지 리스트들을 보기 위해 툴바의 세모 삼각형을 클릭해라, 아래 보여지는데로 아직 처리되지 않은 채인지 리스트들이 보여진다. 애친지 리스트안에 있는 파일들을 보기 위해서 그 체인지 리스트 들을 펴라.

2.
Double-click the changelist in which your file is open. P4V displays the details, as shown in the following figure.
채인지 리스트를 니가 수정한 파일이 오픈되어있는 체인지 리스트를 더블 클릭해라. 아래 그림에서 보여지듯 말이다.
3.
Enter a description explaining the changes you made and click Submit. The Log pane displays a message confirming that your changelist was submitted, similar to the following.
디스크립션 텍스트 박스로 들어가서 니가 바꾼 부분에 대해 쓰고 Submit (제출) 하라. 하단의 로그 판에는 니 채인지리스트가 제출되었다는 확인 매세지가 아래 비슷하게 나온다.
Change 813 submitted.
submit complete. 1 file affected.
Displaying a file's revision history
파일들의 버전 히스토리를 출력하기.
To view the changes made to a file or folder, context-click the file or folder and choose File History or Folder History. The history for the selected file or folder is displayed in the right pane. 
파일이나 폴더의 수정된 내용을 보기 위해, 폴더나 파일을 오른클릭 해서 파일 히스토리나 폴더 히스토리를 선택하라. 선택된 파일이나 폴더의 히스토리가 오른쪽 판에 출력 된다.

For example, the following figure shows the history of a folder, listing every submitted changelist that affected a file in the folder.
예를 들어 아래 그림은 어떤 폴더가 지금 깨지 제출 된 채인지리스트중 자기가 가진 파일에 영향을 주는 채인지리스트들을 리스팅 하고 있는 것이 보인다.
Graphical Reporting Tools
그래픽적인 보고서 제작 툴(역자주 : 정도)
P4V includes several valuable graphical reporting tools:
P4V는 몇가지 귀한 그래킥적 보고 툴을 포함하고 있다.
Revision Graph: displays a diagram that shows the evolution of a selected file, including files related by branching operations.
버전정보 그래프 : 선택된 파일의 발전과정을 보여주는 다이어그램(도표)를 출력한다. 또 체인지 리스트를 만들어 내는 브렌칭 작업과 관련된 파일들도 보여준다.(?)
Time-lapse View: shows how the contents of a selected text file changed from revision to revision. You can easily sweep through revision ranges to locate passages of interest and see when they were created and how they changed.
시간 경과에 따른 뷰 : 선택된 파일의 내용들이 버전별로 어떻게 바뀌었는지를 보여준다. 넌 관심이가는 'passages'를 위치 시키기 위해(?) 쉽게 버전정보를 정보를 훑을 수 있을 것이다.
Folder diff tool: enables you to see how the contents of a folder changed.
폴더 디프 뜨는 툴 : 어떤 폴더 안에 바뀐내용이 무었인지 알게 해줄 것이다.
The following sections provide more details about these tools.
아래는 이런 툴들에 대한 세부 내용을 보여준다.
Viewing file revisions as a diagram
파일 버전을 보는 다이어그램 툴

To display the revision diagram for a file, context-click the file in the left pane and choose Revision Graph. P4V launches the tool, which displays a diagram like the following one.
파일을 위한 버전 다이어그램을 출력하기 위해, 왼쪽 판의 원하는 파일을 오른 클릭하고 Revision Graph를 선택하라. P3V는 툴을 킬것이다. 이 툴은 아래 와 같은 다이어그램(도표)를 보여준다.
This diagram shows you when the file was created and how it was branched, and enables you to view details about each version submitted to the depot and navigate through the graph using the navigation map. For more details about the information displayed in the revision graph, consult P4V online help.
이 다이그램은 니가 언제 파일이 만들어졌고 그게 어떻게 브렌치 됐는지 네게 보여준다. 그리고 디폿에 제출되었던 각 버전의 의 세부 사항을 보여주고, 네비게이션 맵이라는걸 활용해서 그려주는 그래프를 통해 그런 정보를 쉽게 찾아 볼 수 있다. 버전 그래프안에 출력되는 정보에 대헤 더알고 싶거든 P4V 온라인 핼프를 봐라.
Browsing file revisions using Time-lapse View
시간 경과 뷰를 활용해서 파일 버전정보 보기
To browse the changes made to a text file, context-click the file in the left pane and choose Time-lapse View. P4V launches the utility, which displays a screen like the following one. 
파일에 변화를 관찰 하기 위해 왼쪽 판에 해달 파일을 오른 클릭하고 Tile-lepse(시간 경과 뷰)를 선택하라. P4V는 그놈을 킬 것이고 그놈은 아래와 같은 스크린을 보여줄 것이다.
(역자 주 : 우측 슬라이더, 버전 변화에 따라 주욱 살펴볼수 잇는 슬라이드 바가 있다.
채인지 딕테일 : 텍스트가 바뀌고 더해지고 지워진 내역들을 상세하게 보여준다)
Using Time-lapse View, you can sweep through all revisions of the file using the slider, noting when changes were made and who made them. Again, for details, consult P4V online help.
Time-lapse뷰의 슬라이더를 활용해서 해당 파일의 모든 버전 정보를 주욱 훑어 볼 수있다. 아무것도 바뀐게 없는데 누가 그걸 만들 었을 경우 아무것도 표현 안될 것이다. 역시 P4V 온라인 헬프를 참조하라.
Displaying folder history using the folder diff tool
폴더 히스토리를 folder diff tool을 이용해 디스플레이 하기 
The folder diff tool enables you to see how the contents of a folder have changed: which files have been added, changed, or deleted. To view changes to a folder:
폴더 디프툴은 니가 어떻게 폴더의 내용물을 바꾸어 왔는지 보여준다. (어떤 파일을 더했고 바꿨고 지웠는지 말이다), 바뀐내용을 보기 위해서 아래와 같이하라.
1.
Context-click the folder in the left pane Depot or Workspace tab and choose Folder History. 
왼쪽 판에있는 디폿이나 워크 스페이스 템에 폴더를 오른 클릭하라. 그리고 Folder History를 선택하라.
In the right pane, P4V lists changelists that affected the folder, for example:
오른 쪽 판에 보면 P4V는 해당 폴더에 영향을 주는 채인지 리스트를 출력할 것이다. 예를 들면 아래와 같다.
2.
To display the changes that occurred between two revisions of a folder, drag and drop one of the revisions on the other. 
한 폴더에 관련해서 두 버전사이에 변화를 출력하고 싶다면, 하나의 리비전을 비교하고 싶은 다름 버전에 끌어다 놓아라.
P4V displays the changes as shown in the following figure. This example shows that, between the selected revisions, a file was edited and checked in. File highlights are color-coded to indicate additions, changes, and deletions. Expand folders and scroll to locate changes of interest. To skip to the next or previous change, click the right and left arrows
P4V는 아래와 같이 바뀐내용을 보여준다. 이 예제는 선택된 두개의 버전들 사이에 어떤 에디트되고 채크인된 하나의 파일을 표현하고 있다. (역자주 : 하나의 파일은 안보이는거 같은데, 하나의 폴더가 바뀌었다고 보라색 마킹되어 있는게 보인다. 맨위의 보라색 마킹은 바뀐 폴더를 가진 상위 폴더니까 마킹 되어있을 테고)
.
Important and Useful Features
중요하고 유용한 요소들
Among the many features provided by P4V, the following are especially useful:
P4V에 의해 제공되는 많은 요소중, 아래내용이 특히 중요하다.
Tooltips: to get more information about an object, place your mouse cursor over it. P4V displays a popup dialog containing more details.
툴팁 도움말 : 해당 버튼이나 판같은 객체애 더 많은 정보를 우너하므녀 마우스 오버해서 툴팁을봐라 팝업 다이얼로그를 보여주는데 더 많은 정보가 있다.
Drag and drop: P4V includes numerous drag and drop shortcuts for common operations.
드래그 앤 드랍 : P4V는 그래그 앤 드랍을 할수 있는 많은 단축아이콘들을 품고있다 그리고 드래그앤 드랍했을때 다양한 동작을 할 수 있다.
File views: P4V enables you to preview graphics files using thumbnails.
파일 뷰 : P4V는 thumbnails 라는걸 사용해서 그래픽파일들(JPG 같은)을 미리 볼 수 있게 해준다.
Tear off windows: to create a separate window displaying a specification you want to keep on display, you can tear it off.
떼어 낼 수 있는 윈도우들 : 별도의 윈도우 출력을 위해 넌 니가 원하는 화면구성을 만들 수 있다. 각 윈도우를 떼어 낼 수 있다.
The following sections provide more details.
아래 글은 위에 말한걸 자세히 말하고 있다.
Tooltips
툴 팁
P4V provides tooltips for many objects on the screen. For example, to display the status of a file, hold the mouse cursor over the file in the left pane. P4V displays a tooltip like the following one.
P4V는 스크린 위에 있는 많은 오브젝트에툴팁을 제공하는데 예를들어, 파일 상태를 출력하고 싶으면 마우스크서를 왼쪽 판에 그 파일에 마우스를 오버하고 있어봐라. 아래와 같은게 보여질 것이다.
Another example: to display a changelist description, click in the toolbar and hold the mouse cursor over the changelist in the right pane. There are tooltips for all the P4V buttons, too.
다른 예로 채인지리스트 설명을 출력하고 싶으면 툴바에 파란 삼각형을 클릭하고 오른 쪽 판에 채인지리스트에다 마우스 오버 해라. 또 P4V버튼들에 대한 툴팁 또한 많다
Drag and drop
드래그 앤 드롭

P4V provides drag and drop shortcuts for common tasks. Drag and drop can simplify operations on large groups of files. For example, to check out all the files in a folder, drag the folder to a changelist. 
P4V는 드래그 앤 드랍 단축아이콘들을 제공하고 이런 드래그 앤 드랍으로 일반적인 작업을 할 수 있다. 드래그 앤드랍은 큰 파일 그룹을 대상으로 단순한 동작을 수행하도록 할 수 있는데 예를 들어 폴더내에 모든 파일을 채크 아웃 하기 위해 폴더를 채인지 리스트로 끌어다 놓으면 된다.
To diff two files, drag one to the other. For details about drag and drop shortcuts, refer to the P4V online help.
두 파일 디프뜨기, 하나의 파일을 다른 하나의 파일로 드래그하라. 세부 정보는 P4V온라인 헬프를 따라라.
File views
파일 뷰
If you use Perforce to manage graphics files, P4V's thumbnail views enable you to preview the files. To display thumbnails, click the Files tab in the right pane, then select the desired thumbnail size from the title bar
만약 그래픽 파일을 관리하는데 퍼포스를 쓰고 있다면, thumbnail뷰라는게 그림을 볼 수 있게 해준다. thumbnails을 디스플레이 하기 위해서 오른 판에 파일을 클릭하고 타이틀 바에서 원하는 thumbnail 사이즈를 선택해라.
.
P4V displays thumbnails as shown in the following example.
P4V는 아래와 같이 thumbnails 로 디스플레이 한다.
Tearing off tabs
탭들 떼어 내기
To keep a tab open, you can undock it. For example, context-click a file and choose File History, then choose Window > Undock Tab. P4V opens a separate window for it, as shown in the following figure.
하나의 탭을 열려있는 상태로 두기 위해서 는 그을 떼어 낼 수 있다. 예를 들어 하나의 파일을 오른클릭하고 File Hestory를 선택하고 Window -> Undock를 선택하면 P4V는 따로 떨어진 창을 열어둔다 아래와 같이 말이다.
To restore it to the main window, choose Window > Dock Window.
다시 복구 하고 싶으면 Window -> Dock Window를 선택하면 된다.
Setting Preferences
선호도 세팅
To configure P4V, edit its preferences (Mac: P4V > Preferences, Windows: File > Preferences). The Editor tab enables you to associate applications with file types, overriding any operating system associations. 
P4V를 설정하기 위해 선호도 세팅을 해라 (맥에서는 : P4V > Preferences, 윈도우에서는 : File -> Preferences). 에디터 텝은 니가 니 OS에서 돌아가는 파일 타입에 따른 에디터 어플리케이션을 설정하는데 이때 어떤 OS에서건 기본적으로 되어있는 파일 대 사용 어플 관계를 오버라이딩 하게 된다.
The Diff and Merge tabs enable you to configure external applications, in case you prefer tools other than those that are bundled with P4V.
디프나 머지 탭에선 니가 외부어플리케이션을 설정 할 수 있게 해준다. 니가 P4V에 들어있는 툴말고 다른 툴을 선호 할 때 말이다.
Migrating from P4Win
P4Win에서의 이주
If you're moving from P4Win to P4V, here's a list of equivalent operations to help you in your transition
만약 니가 P4Win를 쓰다가 P4V를 쓰기로 했다면 여기 같은 기능을하는 것들끼리 묶어 놓은 리스트가 있다. 니 이주를 도울 것이다.
(P4Win써 본적이 없으므로 패스)
Add to Source Control...
Applies only to files in the Workspace Tree
Graphical annotation tool
Diff 2 Files, Folders orRevisions
Or context- click on file and choose:
Diff Against Have Revision
Integrate Using Filespec or Branchspec
File properties are displayed in the Details pane at the bottom of the Files in Folder view
Remove fromWorkspace
Alternatively context click on file and choose File History
Alternatively context click on file and choose Open
Applies only to folders in the Workspace Tree
Find File Under Selected Folder...
Restrict to client view by choosing:
View>Filter Depot>Tree Restricted to Workspace View
(anyspecification menu)
Navigate directly to desired specification
Show the entire depot by choosing:
View>Filter Depot>Entire Depot Tree
Local View of Client Tree
Show Deleted Depot Files
Favorite Connections
Set Password for (current user)...
Superusers can manage users and groups from within P4V

Next Steps 
다음 장에서 
This guide helps you to start working with files using P4V and points out important basic features, but P4V enables you to do much more: create jobs, branch groups of files, and handle file conflicts that arise in team development settings. 
이 장에서 니가 P4V를 사용해 파일 작업 하는걸 가이드했고, 중욯나 기조 속성을 말했다. 하지만 P4V는 더 많은 걸 할 수 있다. 잡을 만들수있거나 파일 그룹을 브랜치 딸수 있거나 팀단위 개발 세팅을 통해서 하나의 파일을 두 팀원이 동시에 작업하느라 한쪽이 재작업해야하는 갈등 문제등을 제어 할 수 있다.
Perforce administrators can perform administrative operations by choosing Tools > Administration. Using the Administration tool, superusers can manage users and groups, and their access to files and folders within the depot. Some administrative functions must still be performed using the Perforce command-line client (p4). For details, see the Perforce Command Reference and the Perforce System Administrator's Guide. 
퍼포스는 관리자는 관리하는데 필요한 동작을 Tools -> Administration 에서 찾아 수행 할 수 있다. 이 관리 툴을 이용해서 관리자는 사용자와 그룹을 관리 할 수 있고 그들이 디폿 안에있는 파일이나 폴더에 대한 접속을역시 관리 할 수 있다. 어떤 관리적 동작들은 아직도 Perforce Command-line(P4)를 통해서 수행된다. 자세히 알고 싶거든 퍼포스 커맨드 참조와 퍼포스 시스템 관리 가이드를 참조해라.
To become expert with P4V:
P4V전무가가 되기 위해
Consult the P4V online help and read the Perforce user documentation available from the Perforce Web site.
P4V 온라인 핼프를 참조하고 퍼포스 웹싸이트에 있는 퍼포스 유저 문서를 읽어라.
Use tooltips.
툴 팁을 활용해라
Pay attention to the file icons and decorations in the left pane. The decorations and icons display a great deal of information about the type and status of a file. 
파일 아이콘과 오니쪽 판에있는 장식이나 아이콘들을 주의깊게 봐라, 장식이나 아이콘들은 상당히 많은 양의 상태정보나 타입 정보를 보여준다.
Start reading the Log pane.
로그 판에 있는 걸 읽어라.
Learn drag and drop shortcuts to simplify operations on large sets of files.
그래그 앤 드롭 단축 아이콘을 통해 많은 양의 파일들이 해야할 동작을 단순하게 돌리는 법을 배워라.
Use P4V views and filtering features to enable you to selectively display information.
P4V 뷰와 필털이 요소들이 있는데 그것들은 정보를 선택적으로 활용할수 있게 도와 줄 것이다.
To get the whole picture, read the P4V online help, Introducing Perforce and the Perforce System Administrator's Guide. 
청사진을 그리기 위해서 P4V 온라인 헬프를 읽어라 그것들중엔? 퍼포스를 소개와 관리자 가이드가 잇다.
The guides, which are available from the Perforce web site, describe the full set of features that the Perforce Server provides. 
공식 싸이트에 있는 그 가이드에는 퍼포스 서버의 모든 요소들에 대해 풍부하게 설명하고 있다.
Perforce Technical Support is always ready to help you, and there's a thriving community of Perforce users active on the perforce-user mailing list. Consult our web site for details.
퍼포스 사용자 지원팀도 있다는둥.. 커뮤니티고 활발하고 지들 좋으니까 쓰라는 둥.. 잘좀 부탁한다는 둥..

반응형
반응형

http://www.phpk.org/archives/181

 

프로그램을 개발하면서 SVN 서버가 필요한 경우가 있습니다. VisualSVN Server는 Windows 기반에서 간편하게 SVN 서버를 구성해 줍니다.

웹 사이트에서 VisualSVN Server를 내려 받으신 후 msi 파일을 실행하면 설치를 시작합니다.

화면 1 VisualSVN Server 설치 시작 화면

VisualSVN Server는 Apache 웹 서버와 Subversion을 포함하고 있습니다. 이미 설치하려는 시스템이 Apache가 설치되어 있어도 Apache가 사용하는 포트가 중복되지만 않는다면 문제 없이 사용할 수 있습니다.

 

화면 2 서버 설정 화면

VusialSVN Server를 설치할 위치와 소스 코드를 저장할 저장소(Repositories) 위치를 지정할 수 있습니다. 기본 서버 포트는 8443이며 SSL을 통해 접속하게 되어 있습니다. SSL을 사용할 필요 없으시다면 Use secure connection에 V 표시를 없애면 됩니다.

인증 (Authencation)에서는 VisualSVN Server에서 사용자 그룹과 사용자를 관리할 것인지 Windows 에 이미 지정된 사용자 그룹과 사용자 정보를 사용할 것인지를 선택합니다.

 

Subversion authentication과 Windows authentication 차이

인증 방법의 차이는 아래 화면처럼 Subversion authentication을 선택하면 VisualSVN Server에서 사용자 그룹을 생성하고 사용자를 관리할 수 있습니다. 반면 Windows authentication 을 선택하면 Windows 에 등록된 사용자 이름과 비밀번호로 접근할 수 있습니다.(제어판 -> 사용자 계정)

여러 사람과 같이 사용해야 하는 경우라면 Subversion authentication을 사용하는 것이 보다 안전할 것으로 생각됩니다.

화면 3 Subversion authentication 사용 화면

 

설치 후 가장 먼저 사용자를 추가합니다. 원하는 사용자 이름과 비밀번호를 입력하여 사용자를 추가합니다.

화면 4 사용자 추가 화면

그리고 사용자 그룹을 만듭니다. 원하는 사용자 그룹 이름을 입력합니다. 사용자 그룹 추가 화면 아래 Add 버튼을 클릭해서 사용자 그룹에 포함할 사용자를 선택합니다.

화면 5 사용자 그룹 추가 화면

화면 6 사용자 그룹에 사용자를 추가하는 화면

이제 왼쪽 트리 화면에서 VisualSVN Server를 선택하여 시작 화면으로 돌아오면 오른쪽 화면의 Status 항목에 SVN Server URL을 클릭하여 저장소에 접근할 수 있습니다.

Internet Explorer로 URL에 접속하면 보안 인증서에 문제가 있다는 경고 화면을 보게 됩니다. 이 경고는 SSL 인증서가 사설 인증서라는 것을 알려주는 것인데 VisualSVN Server에서 https 사용으로 선택했기에 나타나는 화면이므로 “이 웹 사이트를 계속 탐색합니다(권장하지 않음).”을 선택하면 됩니다.

화면 7 보안 인증서 문제 안내 화면

사용자 이름과 비밀번호를 입력하면 VisualSVN Server의 SVN 저장소를 볼 수 있습니다.

화면 8 VisualSVN Server의 SVN 저장소 화면

저장소 생성

SVN 저장소는 시작 화면에서 “Create new repository…” 를 선택하거나 마우스 오른쪽 버튼을 눌러 문맥 메뉴를 통해 생성할 수 있습니다.

화면 9 저장소 생성 문맥 메뉴

저장소 생성 창이 뜨면 저장소 이름을 입력합니다. 개발팀에서 사용할 저장소라면 화면과 같이 DevTeam 이라고 짓는 것도 좋은 예입니다.

화면 10 저장소를 생성하는 화면

저장소가 생성되면 화면 왼쪽에 DevTeam 이 추가됩니다. 이제 화면 오른쪽 상단에 있는 URL을 SVN 클라이언트를 이용해 접속하면 소스 코드를 관리할 수 있습니다.

화면 11 저장소가 생성된 화면

VisualSVN 웹사이트 : http://www.visualsvn.com/

반응형
반응형

지난번 svn 설치방법에 대해 포스팅 한 후 드디어 svn 연동을 해 보았다!!!!

이번 소프트웨어실습3 프로젝트를 위해서 서버를 임대를 하여 svn을 설치하고 기타 등등을 설치해서 활용을 하려 했으나 금전적 이유로 인해 고민중에 병희형에게 구글code에 대해 듣게 되었다.

구글 code에서 새로운 프로젝트를 생성하며 원하는 소스 관리 툴을 선택하게끔 되어 있으며 난 svn을 선택하였다.

자! 이제 연동을 해보자!

지금부터 진행 될 내용은 일단 svn이 뭐하는 것인지 알고 있으며, 해당 url과 계정을 가지고 있으며, visual studio에 이전에 포스팅한 svn 설치 방법대로 설치했다는 가정 하에 진행하겠다!

Step1. 해당 Subversion 메뉴 접근

 

 

Step2. 해당 Subversion Url 입력

위 그림의 작은 박스 안의 아이콘을 클릭하면 Url을 입력할 수 있는 화면이 활성화 된다. 우리가 알고 있는 Svn 레파지터리 Url을 입력 후 Ok 버튼 클릭

 

Step3. 해당 Svn 레파지터리 내에서 프로젝트 선택

해당 Svn Url이 유효하다면 위와 같이 하위 폴더들이 노출 된다.

우리가 원하는 프로잭트 파일을 선택하여 Open 버튼을 클릭 해준다. 

필자는 이미 Svn 계정 정보를 입력하였으며 저장하기를 하였기 때문에 노출이 안되었다.

계정이 없을 경우 Svn 관리자에게 생성 요청을 하자!

 

Step4. 해당 프로잭트를 Check out 받을 위치 선택

본인이 원하는 Local Directory를 선택 하고 OK 버튼 클릭

 

 

Step5. 해당 프로잭트를 Check out 중!!!!!! 두둥!

 

Step6. 간단한 Svn 연동한 프로젝트 파일 구성

 빨강 박스로 된 파일(Program.cs)과 파란채크표시가 된 프로젝트 등이 보일것이다.

빨강 박스로 된 파일, 폴더, 프로잭트는 Commit할 대상

파란 채크 표시가 된 파일, 폴더, 프로잭트는 최종적으로 자신이 checkout이나 update받은 대상

간단한 SVN용어 설명

Commit - 우리 로컬에 있는 파일 등을 Svn에 반영하는 작업

Update - 우리 로컬에 있는 파일에 Svn의 최신버전으로 변경하는 작업 ( 만약 수정중파일(빨강박스)의 경우 충돌이 발생할수 있음, 이건 적절한 경험을 해봄으로 습득 가능)

Checkout - 우리 로컬에 최초로 Svn 레파지터리에 있는 것을 다운 받는 작업

 

 

 

Step7. 간단한 바로가기 메뉴 설명

필요한 메뉴 항목에 대해서만 설명

Commit - svn서버로 반영

Show Changes - 현재 파일과 svn서버에 있는 파일과 비교

View History - 해당 파일이나 선택한 폴더 등의 이력을 노출

Revert - 현재 파일의 버전으로 원복(최신이 아닌 것을 유념)

 View History

 

 Show Changes

 

Revert

 

 

Commit - Log Message를 남겨주는 것은 필수!

 

자 이상으로 SVN 연동 및 테스트는 끝이 났다!

반응형
반응형

AnkhSvn-2.3.10838.vol1.egg 

AnkhSvn-2.3.10838.vol2.egg 

AnkhSvn-2.3.10838.vol3.egg



SVN을 사용해 왔기에

Visual studio 2010에서도 svn을 사용하기 위하여 설정 해 보았다.

 

http://ankhsvn.open.collab.net/downloads

 

무슨 정보등을 입력해야 한다... ㅎㅎ

 

파일첨부를 하였으니 다운받아 압축 풀고 긍정적인 방향으로 설치 하길 바라다.

 

visual studio가 켜져 있었다면 프로그램 재시작~

 

1. 도구 > 옵션 으로 들어간다.

2. 아래와 같은 화면의 메뉴에서 플러그인 변경

 

3. 변경 후 아래와 같이 svn 사용이 가능해진다. 

 

4. 연동은 추후 해본 후 블러깅 하겠당~

반응형
반응형

 AnkhSVN

http://ankhsvn.open.collab.net/

 


 

출처 : http://yonomi.net/?p=87

 

 

 

 

Visual Studio 2010에서도 Subversion을 이용해서 형상관리를 할 수 있게 되었나보다.

* 설치
(VS2010이 설치된 상태에서) AnkhSVN을 설치한다.
* Source Control 설정
   1. Tools > Options
   2. Source Control > Plug-in Selection
   3. Current source control plug-in 리스트에서 AnkhSVN – Subversion Support for Visual Studio를 선택

Select AnkhSVN for source control
* Repository 탐색
   1. View 메뉴 > Repository Explorer
   2. Add repository URL 선택하여 URL 추가
   Add a URL to the Repository Explorer
   3. 아이디와 비밀번호 확인(옵션)

반응형
반응형

TortoiseSVN in Visual Studio 비주얼스튜디오 SVN 연동 팁

http://ssogarif.tistory.com/873
 

TortoiseSVN in Visual Studio

Filed under:  — David @ 7:44 pm

Update October 2 2007: Someone posted a link to Gary’s Bit Patterns where there is a settings file you can just import instead of doing all these manual steps.

I also fixed the quotes in the commands so they shouldn’t cause trouble anymore.

Ever wanted to use TortoiseSVN from VisualStudio? Well, now you can! 1

Contents

  1. Introduction
  2. Menu
  3. Toolbar
  4. Icons
  5. Done

Introduction

I have created a toolbar with Update, Log, Check, Revert, and Commit tortoise toolbar. The commands work the same as if you right clicked the folder containing the solution. Follow the steps below to get your own tortoise toolbar.

Menu

Select Tools > External Tools… from the Visual Studio menu. Add a tool using the following info.

adding tortoise to the menu

FieldValue
#1 
TitleTortoise &Update
CommandC:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
Arguments/command:update /path:"$(SolutionDir)" /notempfile
#2 
TitleTortoise &Log
CommandC:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
Arguments/command:log /path:"$(SolutionDir)" /notempfile
#3 
TitleTortoise Check for &Modifications
CommandC:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
Arguments/command:repostatus /path:"$(SolutionDir)" /notempfile
#4 
TitleTortoise Re&vert
CommandC:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
Arguments/command:revert /path:"$(SolutionDir)" /notempfile
#5 
TitleTortoise &Commit
CommandC:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
Arguments/command:commit /path:"$(SolutionDir)" /notempfile
  • $(SolutionDir) is the path to the directory the solution is in
  • /notempfile is required when running from the command line
  • The ampersands make that letter a shortcut for use in the menu

You should have the commands in your tools menu. Try them out and make sure they all work.

tools menu with tortoise commands

Toolbar

Add the toolbar by right-clicking your toolbar and select customize. Make a new toolbar and call it Tortoise. Close the customize window and right-click again, this time adding the tortoise toolbar.

Now go back to customize, select the commands tab, and scroll down to the tools category. You should see a bunch of commands like External Command 1, External Command 2, etc. Drag those on to your new toolbar. This may require some trial and error.

You can rename the commands in the toolbar by selecting a button with the customize window open, then clicking the Modify Selection button, then Name:.

changing the toolbar names

Icons

Now to add the icons. I haven’t found an easy way to do this yet. Here’s what I did:

Go to http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/src/Resources/ (user guest, blank password). Browse to the image you want then right click the image and select Copy Image (note: this was on Firefox). With the customize window open right click the button and select Paste Button Image.

The pasted image won’t be transparent, so you need to edit the image. Right-click and select Edit Button Image. Then erase all the black area.

erasing the transparent part of the icons

Done

Your toolbar should look something like this: tortoise toolbar

  1. Well, you could have before if you wanted. I’m sure I’m not the first to come up with this. I know a few people already do this because it came up on the TortoiseSVN mailing list a while back.

반응형
반응형

http://cafe.naver.com/ydg10/28

Subversion (SVN) 설명,사용 이유 |

안녕하세요 2조 10 플밍 오재윤 이라고 합니다.

이 글을 쓰는건 다름이 아니라 프로젝트를 진행하실때 괜찮은 툴이 있어 소개시켜드리려고 합니다

들어보신분도 계시고 써보신분도 계시고 저보다 더 잘 아시는 분도 계시겠지만 염치 불구하고 몇자 적어봅니다.

제가 소개해드릴것은 Subversion 흔히 SVN 또는 거북이 라고 불리우는 소프트웨어 버전 관리 시스템입니다.

오픈소스이다보니 무료로 다운받으셔서 사용하실수 있습니다

그리고 SVN 말고도 CVS , Visual SourceSafe 등 많은 관리 시스템들이 있지만..

SVN 과 CVS 와의 차이점을 설명드리겠습니다.

이 2가지 차이를 설명드리는것은 가장 많이 쓰이는 툴이기 때문입니다.

SVN 은 CVS 의 업데이트 판이라고 생각하시면 쉽습니다.

SVN 이 CVS 와 비교했을때의 장점은

  • 원자적으로 쓰기를 지원하므로, 다른 사용자의 쓰기와 엉키지 않는다.
  • 이름을 바꾸거나, 복사하거나, 파일을 지워도 리비전 기록을 유지한다.
  • 이진 파일의 경우 한번 저장한 후 변경될 경우 차이점만 저장하기 때문에 저장소를 효율적으로 사용할 수 있다.
  • 디렉터리도 버전 관리를 할 수 있다. 디렉터리 전체를 빠르게 옮기거나 복사할 수 있으며, 리비전 기록도 그대로 유지한다.
  • 소스 저장고의 크기에 상관 없이 일정한 시간 안에 가지 치기(branching)나 테그 넣기(tagging)를 할 수 있다.
  • 소스 저장고로의 접근이 최적화되어 있으므로, 소스 저장고에서 필요 없는 네트워크 트래픽을 줄일 수 있다.

    (출처 : Wiki)

    등이 있습니다

    그럼 왜 이 SVN 이나 CVS 같은 버전 관리 시스템을 사용하느냐.. 하실수도 있습니다

    그 이유는

  • 무언가 잘못되었을 때 복구를 돕기 위하여
  • 프로젝트 진행 중 과거의 어떤 시점으로 돌아갈 수 있게 하기 위하여
  • 여러사람이 같은 프로젝트에 참여할 경우, 각자가 수정한 부분을 팀원 전체가 동기화하는 과정을 자동화하기 위하여
  • 소스 코드의 변경 사항을 추적하기 위하여
  • 소스 코드에서 누가 수정했는지 추적하기 위하여
  • 대규모 수정 작업을 더욱 안전하게 진행하기 위하여
  • 가지내기(Branch)로 프로젝트에 영향을 최소화 하면서 새로운 부분을 개발하기 위하여
  • 접붙이기(Merge)로 검증이 끝난 후 새로이 개발된 부분을 본류(trunk)에 합치기 위하여
  • 많은 오픈 소스 프로젝트에서 어떠한 형태로든 버전 관리를 사용하고 있으므로
  • 코드의 특정 부분이 왜 그렇게 쓰여 졌는지 의미를 추적하기 위하여

    (출처 : Wiki .. 제가 적을수도 있지만 그것보다는 Wiki 가 다양하게 설명해주어서 적어봅니다.)

    등이 있습니다

    일반적인 사용방식 개념은

  • 갑돌이가 어떤 File을 저장소(repository)에 추가(add) 한다.
  • 추가되었던 File을 갑돌이가 인출(Check out) 한다.
  • 갑돌이가 인출된 file을 수정한 다음, 저장소에 예치(Commit) 하면서 설명을 붙인다.
  • 다음날 을순이가 자신의 작업 공간을 동기화(Update) 한다. 이 때 갑돌이가 추가했던 file이 전달된다.
  • 을순이가 추가된 file의 수정 기록(Change log)을 보면서 갑돌이가 처음 추가한 file과 이후 변경된 file의 차이를 본다(Diff).

    (출처 : Wiki)

    입니다

    아마 빨간색으로 표현한 부분이 가장 중요하고 가장 자주 쓰일것입니다.

    그럼 다음 글에서 설치법,사용법을 안내해 드리도록 하겠습니다.


  • http://a.tk.co.kr/456


    소스세이프(Source Safe)보다 좋은 버전관리 프로그램 Tortoise SVN 을 소개해드립니다.

    홈페이지 : http://tortoisesvn.net/

    버전관리를 통한 소스 관리의 중요성

    프로그래머, 개발자라면 반드시 소스의 버전관리를 해야 합니다. (선택이 아니라 필수입니다.)

    소스관리 소프트웨어를 사용하는 대표적인 이유는 다음과 같습니다.

    - 백업

    - 팀 프로젝트 (팀원과 공통 소스 개발)

    - 잘못 만들어진 소스 복구

    저(Kyuseo) 역시 예전에는 MS 사의 소스세이프(Source Safe)를 10년 가까이 사용하였으나 최근 3년간 Tortoise SVN을 사용해본 결과 이제는 소스세이프를 사용하는 프로젝트는 손까락도 대기 싫습니다. 업무 효율상 20%~30% 이상 이득을 보았다고 생각합니다.

    특히 프로그래머, 팀장님들은 꼭!!! SVN 을 적극 활용하시기를 권해드립니다.

    tortoise( 터틀스, 거북이) SVN 을 사용해야하는 이유

    - 2명 이상의 작업자가 코드 수정이 가능

    - 지능적인 자동 Marge

    - 무료 공개 소스 프로그램

    - 지속적인 업데이트

    - 한글 지원

    - 탐색기 기반

    - 모든 프로그램 호환 (소스코드 뿐만이 아니라 그래픽, 기획자도 사용하기 편리함)

    - 프로그램의 안정성

    - 세세한 옵션 조정 가능

    - 전폭적인 업데이트 로그 관리

    스크린샷


    http://a.tk.co.kr/529

    개요..

    터틀스 SVN 을 약 3년간 사용하면서 소스세이프보다 매우 만족하면서 사용을 하였습니다.

    하지만 최대의 문제점은 잦은 하드 디스크 엑세스로 인한 전체적인 컴퓨터 성능의 저하로 불편함을 느꼈는데 이것을 조금이나마 해소할 수 있는 터틀스 SVN(TortoiseSVN) 속도 향상 방법에 대하여 소개해드립니다.

    로그캐싱을 중단한다 .

    설정 -> 로그캐싱 ->로그캐싱사용 불가로 설정

    로그 보기의 속도가 느려지기는 하지만 하드 엑세스를 하지 않아 전반적인 성능이 올라갑니다.

    (Kyuseo 가 추천합니다.)

    아이콘 상태 캐시를 중단한다 .

    설정 -> 아이콘 오버레이 -> 상태캐시 없음으로 설정

    아이콘 자동 갱신을 사용하지 않아 상태 표시가 어렵기는 하지만 하지만 하드 엑세스를 하지 않아 전반적인 성능이 올라갑니다.

    (개인적으로는 추천하지 않습니다.)


    SVN 병합기능 : http://cafe.naver.com/jquerymytour.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=328&

    반응형
    반응형

    설정하기

    메뉴얼을 보면 TortoiseMerge.exe와 TortoiseDiff.exe를 연동하는 법이4 나와 있다. 그러니 이에 대해선 언급하지 않고 WinMerge5를 외부 Diff 도구로 쓰는 법만 적는다.

    1
    "C:\Program Files (x86)\WinMerge\WinMergeU.exe" -e -x -ub -dl "%bname" -dr "%yname" "%base" "%mine"

    위의 코드를 [비주얼 스튜디오 - 도구 – 옵션 – Source Control – Subversion]에 적으면 된다.


    문제점

    AnkhSvn과 Visual Assist X의 충돌6

    안타깝게도 Visual Assist X7과 AnknSvn이 충돌을 일으키는 기능이 하나 있다. 바로 커밋! 커밋할 때 Visual Assist X이 커밋 로그 창에 함수 목록을 보여 주려 하고 이 때문에 글자가 안 써 진다. Visual Assist를 끄던가, 메모장에 로그를 써서 커밋 로그 창에 붙여넣어야 한다.

    반응형
    반응형

    게임 개발자를 위한 SVN -5-

    SVN을 효율적으로 사용하기 위한 몇 가지 조언들

    SVN은 어디까지나 작업을 진행 할 때 필요한 보조 도구Tool이다. SVN 등의 버전 관리 프로그램이 개발의 마법 지팡이는 아니며, 때문에 올바른 사용 습관을 들이는 것이 중요하다. 다음의 사항들을 지킨다면 SVN을 사용하는 중 발생 할 수 있는 갖가지 골치 아픈 문제를 미연에 방지 할 수 있을 것이다.

    자주 커밋 할 것

    중간 중간 결과물이 나올 때 마다 커밋을 하게 될 경우, 일단 작업 중 파일을 날리거나, 중간 지점으로 복구를 해야 할 상황이 발생 할 때 큰 도움이 된다. 커밋을 하는 기간이 짧을 수록 복구를 할 수 있는 복구 지점이 하나 더 늘어나는 것이다.

    자주 업데이트 할 것

    혼자 작업을 하는 것이라면 상관 없겠지만, 기본적으로 팀 작업을 하고 있을 때에는 자주 업데이트를 해야 한다. 무엇보다 남들이 작업한 결과물을 지속적으로 확인을 하고 그에 대하여 커뮤니케이션 하는 것은 팀 작업의 기본이다.

    항상 로그 메시지를 입력 할 것

    로그 메시지를 입력하지 않는다면, 그 자료를 받는 다른 작업자들은 당신이 커밋한 내용이 대체 무엇인지 파악하기 위해 메시지를 입력 했을 때 보다 더 많은 시간을 할애해야 한다. 또한 로그 메시지를 입력하지 않으면, 해당 리비전의 변경 사유 등의 기록이 그 자리에서 사라지게 된다. 로그 메시지를 누락하여 무의미한 커밋을 하는 것은 팀 커뮤니케이션을 방해하는 요소가 된다.

    업데이트 된 파일 및 로그를 확인 할 것

    항상 업데이트를 한 다음에는 다른 사람들의 커밋 내역을 확인하도록 한다. 효율적인 프로젝트를 위하여 남의 작업을 항상 확인하고 자신의 작업을 점검하라.

    올리기 전 올려야 되는 파일을 정확하게 확인 할 것

    SVN에서 관리 할 필요가 없는 파일들(예를 들어 Thumbs.db 같은 류)을 SVN으로 관리하기 시작하면 SVN의 성능을 저하시키는 역할을 한다. 구태여 필요하지 않은 파일을 올리는 것은 아닌지 확인을 하고 커밋하는 습관을 들이도록 한다.

    작업 프로세스를 항상 개선 할 것

    SVN과 버전 관리 시스템이 램프의 지니는 아니다. 시스템을 도입했다고 해서 개발 중 발생하는 리소스 문제가 봄날 눈 녹듯 다 녹아내리는 것은 절대 아니다. SVN을 운영 하면서 많은 팀들이 많은 시행착오를 겪었고, 이를 해결하기 위해서 작업 프로세스에 문제가 발생하면 항상 프로세스를 개선하여 문제를 해결하고자 노력을 기울인다. 팀을 효율적인 프로세스를 갖춘 유능한 팀으로 만들고 싶은가? 그럼 작업 프로세스에 문제가 없는지 항상 살피고 문제점을 해결하기 위해서 노력해야 한다.

    참고 문헌

    사실 SVN 및 Tortoise SVN의 기능은 다양하다. 앞서 밝혔듯 본 문서에서는 그 중 가장 기본이 된다고 여겨지는 기능들에 대해서만 간략하게 정리 하였다. 본격적으로 버전 관리 시스템을 구축하거나, 혹은 관리자 기능에 대해 알고 싶은 사람, 또는 다른 세부적인 기능들에 대해서 궁금한 사람들은 아래의 자료들을 참고하기 바란다.

    • 윈도우 프로젝트 필수 유틸리티: Subversion, Trac, Cruise Control.NET(이재홍, 2008): 윈도우 프로젝트 진행 시 필요한 각 프로그램에 대한 설치, 운영에 대한 책
    • 실용주의 프로그래머를 위한 버전관리 using CVS(데이비드 토머스 외, 2004): SVN이 아닌 CVS에 대한 책이지만, 버전 관리의 기본 개념을 충실히 설명했다.
    • Version Control With Subversion for Subversion 1.6(Collins Sussman 외, 2010): SVN 1.6 공식 메뉴얼(영문)

    홈페이지


    문서 저작권

    이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 이용허락조건을 보려면, http://creativecommons.org/licenses/by-nc-sa/2.0/kr/을 클릭하거나, 크리에이티브 커먼즈 코리아에 문의하세요.

    반응형
    반응형

    http://www.heartcomplex.net


    게임 개발자를 위한 SVN -4-

    Tortoise SVN으로 파일/폴더 관리하기

    기본적으로 SVN은 각 파일 및 폴더의 변경 사항에 대한 기록을 해당 폴더 내의 .svn 이란 별도 폴더를 생성하여 관리한다(이 폴더는 숨김 상태로 숨겨져 있기 때문에 숨김 파일 표시 옵션을 추가하지 않는 한 보이지 않는다).

    각 파일 및 폴더에 대한 추가, 삭제, 이름 변경 등의 내역을 SVN에서도 확인이 되어야 해당 작업물이 정상적으로 저장소에 전송이 될 수 있기 때문에 파일/폴더 관리 작업은 Tortoise SVN으로 관리를 하는 것이 안전하다-윈도우에서 파일 관리 하듯이, 파일을 휴지통 혹은, Delete 키를 이용하여 지우거나, Ctrl-C/V 등을 이용하여 복사하는 방법을 이용 할 수 있지만, 이러한 방법들은 저장소와 작업 복사본에 존재하는 데이터를 엉키게 만들어 작업물을 날릴 수도 있으니 주의하기 바란다.

    파일/폴더 추가Add

    기존 저장소에 저장되지 않은 새로운 파일이나 폴더를 만든 경우 추가 명령을 이용하여 해당 파일 및 폴더를 SVN이 관리 할 수 있도록 해야 한다. 추가 명령으로 파일/폴더를 등록하지 않으면 SVN이 해당 파일/폴더를 인식하지 못하고 저장소로 전송하지 않는다.

    • 추가를 시킬 파일이나 폴더를 선택하여 마우스 우클릭으로 메뉴를 불러온 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.

    • 서브 메뉴 중 Add... 를 선택한다. 폴더를 선택할 경우 해당 폴더 내 추가 가능한 파일 리스트 팝업이 나타난다.

    • 추가 작업이 종료되면 해당 파일/폴더의 아이콘에 + 기호가 추가 된다.
      - 추가 작업을 한 파일을 다시 되돌리고 싶다면, 서브 메뉴의 Undo Add... 를 이용한다.

    • 해당 파일/폴더를 커밋하면 추가가 완료된다(반드시 커밋을 해야 해당 파일/폴더가 저장소로 전송된다).

    파일/폴더 삭제Delete

    기존 저장소에 저장되어 있던 파일/폴더를 삭제해야 할 경우 삭제 명령을 이용한다.

    • 삭제를 시킬 파일/폴더를 선택하여 마우스 우클릭으로 메뉴를 호출 한 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.
    • 서브 메뉴 중 Delete를 선택한다.

    • 삭제 작업이 완료 되면 해당 파일이 삭제 된다.
      - 삭제 작업을 한 파일을 다시 되돌리고 싶다면, 서브 메뉴의 Revert를 이용한다.

    • 해당 파일/폴더를 커밋하면 삭제가 완료된다.

    파일/폴더 이름 바꾸기Rename

    기존 저장소에 있는 파일/폴더의 이름을 변경하고 싶을 경우 이름 바꾸기 명령을 이용한다.

    • 이름을 바꿀 파일/폴더를 선택하여 마우스 우클릭으로 메뉴를 호출 한 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.
    • 서브 메뉴 중 Rename을 선택한다.

    • 바꿀 이름을 확장자까지 입력한 후 OK를 누른다.

    • 해당 파일/폴더를 커밋하면 이름 변경이 완료 된다.

    Tortoise SVN 사용 시 요긴하게 쓰이는 기능들

    다음에 설명 될 기능들은 SVN을 이용하면서 자주 이용하게 되는 기능은 아니지만, 이용 중 발생하는 문제의 원인을 확인하거나 조치하기 위해 사용되는 기능들이다. 여기에서는 몇가지 주요 기능들에 대해서 설명하도록 한다.

    로그 보기Show Log

    변경 사항에 대한 기록을 확인하기 위해서 사용한다. 저장소에 저장된 작업물의 로그를 리비전 단위로 확인 할 수 있으며, 각 리비전 별로 커밋 시 입력한 메시지, 변경된 파일 목록을 확인 할 수 있다.

    • 작업 복사물이 있는 폴더에서 마우스 우클릭으로 메뉴를 호출한 후,Tortoise SVN을 선택하여 서브 메뉴를 불러온다.

    • 서브 메뉴 중 Show Log를 선택한다.

      - From / to: 검색하고자 하는 로그의 기간을 입력 할 수 있다.
      - Messages, authors and paths 입력 폼: 검색하고자 하는 키워드를 이곳에 입력하여 검색한다.
      - Revision List: 리비전 별로 분류되어 있는 검색 결과 항목이 리스트로 표시 된다. 해당 항목을 클릭하면, 하단에 메시지와 변경 내역이 출력 된다.

    저장소 브라우저Repo-browser

    저장소 브라우저는 현재 저장소에 저장된 작업물의 구조를 확인 할 수 있게 해준다. 저장소 브라우저를 통해 저장소에 저장되어 있는 폴더의 구조, 파일의 위치 등을 확인 할 수 있다.

    • 작업 복사물이 있는 폴더에서 마우스 우클릭으로 메뉴를 호출한 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.

    • 서브 메뉴 중 Repo-browser를 선택한다

      - URL: 현재 보고 있는 저장소의 주소이다. 주소를 직접 변경하여 다른 저장소를 확인 할 수 있다.
      - Revision: 각 리비전에 따른 저장소 구조를 확인 할 수 있다. Head는 최신 리비전을 나타내며, 특정한 리비전 번호를 입력하면 해당 리비전의 폴더 및 파일 구조를 확인 할 수 있다.

    위치 재지정Relocate

    작업 복사물에서 신나게 작업하고 있는 동안 갑자기 저장소가 들어있는 서버의 IP가 바뀐다던가, 도메인 이름이 바뀌거나 하는 경우 해당 작업 복사물에서 가지고 있는 저장소의 위치를 변경해야 할 경우가 발생한다. 이럴 경우 위치 재지정 명령을 이용한다.

    • 작업 복사물이 있는 폴더에서 마우스 우클릭으로 메뉴를 호출한 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.

    • 서브 메뉴 중 Relocate를 선택한다.

      - 입력 폼에 변경된 URL을 입력한 후 OK 버튼을 누르면 위치 재지정이 완료된다.

    변경사항 비교Diff

    Tortoise SVN을 이용하여 이전 버전과 현재 버전의 변경 사항을 비교 할 수 있다. 변경사항 비교는 파일 형식에 따라서 비교가 불가능 할 수 있으며(바이러니 파일은 불가능 하다), 기본적으로 Text 파일 형식, 그래픽 파일 포맷(JPG, GIF, PNG 등), MS 오피스 제품군의 저장 파일들(DOC, XLS 등)의 경우 해당 기능을 이용 할 수 있다.

    • 변경사항을 비교하고자 하는 파일을 선택하고 마우스 우클릭으로 메뉴를 호출한 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.

    • Diff with previous version 을 선택하면 해당 파일의 바로 이전 버전과 현재 작업 복사물에 있는 버전을 동시에 열어준다-별도의 비교용 프로그램을 이용하여 두 파일을 동시에 열게 된다.

      - 참고: 리비전 로그 혹은, 커밋 등의 진행 팝업에서 파일 명을 더블 클릭 하면 해당 파일의 변경 사항을 바로 확인 할 수 있다.

    반응형
    반응형

    http://www.heartcomplex.net


    게임 개발자를 위한 SVN -3-

    Tortoise SVN

    Tortoise SVN은 윈도우Windows 플랫폼 기반 SVN 클라이언트Client 프로그램이다. 윈도우 환경에서 설치하여 GUIGraphic User Interface 환경에서 이용할 수 있기 때문에 SVN의 복잡한 명령줄Command line 체계를 이용하지 않고도 손쉽게 사용이 가능하다.

    다운로드 및 설치

    Tortoise SVN은 공식 홈페이지(http://tortoisesvn.tigris.net/) 에서 다운로드 받을 수 있다. 자신의 윈도우의 운영체계 종류(32Bit / 64Bit)에 맞는 버전을 선택하여 설치 파일을 다운로드 받는다.

    Tortoise SVN 공식 홈페이지

    해당 홈페이지에서는 각 언어별 언어팩을 제공하고 있으며, 한글 역시 지원하고 있다-영어로 된 메뉴에 울렁증이 생긴다면 한국어 지원 팩을 다운로드를 받는다. 설치 파일 및 언어 팩의 인스톨 파일을 실행시켜 설치를 하면 Tortoise SVN이 실행 된다.

    Tortoise SVN 사용에 꼭 필요한 기능들

    SVN에 대한 기본 개념 및 Tortoise SVN에 대한 설명은 여기까지 하도록 하고, 본격적으로 Tortoise SVN을 업무에 활용하기 위한 기능 설명을 하도록 한다.

    체크 아웃Check Out

    체크 아웃은 저장소에서 자신의 컴퓨터로 작업 복사본을 가져오는 명령이다. 해당 명령을 수행하게 될 경우, 사용자 인증을 거친 다음, 저장소로 부터 파일들을 지정된 폴더로 복사 해 오게 된다.

    • 작업 복사본을 저장 할 폴더로 이동한 후, 해당 폴더 윈도우에서 마우스 우클릭 한다. 메뉴 중 SVN Check Out을 선택한다.

    • SVN Check Out을 선택했을 경우 아래와 같은 팝 업 윈도우가 나타난다.

      - URL of repository: 접속 할 저장소의 주소를 입력한다. 저장소의 주소는 SVN 관리자에게 확인한다.
      - Checkout directory: 자신이 작업 복사본을 저장 할 폴더의 위치를 입력한다(보통은 자동으로 입력되므로, 해당 위치가 맞는지 정도만 확인 하면 된다).
      - Checkout Depth: 어느 위치까지 체크아웃 할 것인지를 결정하는 옵션이다. 디폴트인 Fully recursive를 선택한다.
      - Revision: 복사할 작업 복사본의 리비전을 선택한다. HEAD revision을 선택 할 경우 가장 최신의 리비전을 받게 되며, 원하는 리비전의 번호를 입력하면 해당 리비전을 받을 수 있다.

    • 모든 사항을 확인 한 후, OK 버튼을 누르면 다음과 같은 사용자 인증 팝 업이 나타난다.

      - Username: 자신이 발급 받은 사용자 이름을 입력한다
      - Password: 지정한 패스워드를 입력한다.
      - Save authentication: 이 항목에 체크 하게 될 경우 해당 컴퓨터에 인증 기록이 남아 다음 작업 부터는 인증 과정이 자동으로 이루어진다-저장 내역을 삭제하기 위해서는 TortoiseSVN의 환경 설정 옵션을 이용한다.

    • 인증 절차를 마치면 체크 아웃 내역이 아래와 같이 실시간으로 표시 된다.

    • 체크 아웃이 완료 되면 OK 버튼을 눌러 해당 팝 업을 닫는다.

    커밋Commit

    작업 복사본에서 자신이 해야 할 업무를 마무리 하였을 경우, 해당 작업물을 커밋하여 저장소로 내용을 전송해야 한다.

    • 작업 복사본에서 폴더나 수정한 파일을 선택하여 마우스 우클릭을 하여 나타나는 메뉴에서 SVN Commit 을 선택한다.

    • SVN Commit 선택 시 다음과 같은 팝 업 윈도우가 나타난다.

      - Message: 커밋에 들어가는 로그를 기록한다. 로그에는 이번 커밋에서의 변동사항, 팀원들이 확인해야 될 내용, 검색 태그 등을 간략하게 정리하여 입력하도록 한다.
      - Changes made: 커밋에 적용되는 파일의 목록과 적용 상태를 확인 할 수 있다. 아래의 체크 박스 옵션들을 통하여 리스팅을 조정하거나, 전체 선택/선택 취소를 할 수 있다.

    • 로그 메시지 및 커밋 할 파일을 선택 한 후 OK 버튼을 누르면 아래와 같이 커밋 내역이 실시간으로 표시 된다.

    • 커밋이 완료 되면 OK 버튼을 클릭하여 팝 업을 닫는다.

    업데이트Update

    자신이 작업을 진행하고 있는 작업 복사본을 저장소에 있는 최신 작업물로 교체하기 위해서 업데이트 명령을 이용한다. 이 명령을 이용하여 자신이 작업하고 있는 동안 다른 사람들에 의해 갱신 된 작업물들을 최신 파일로 내려 받아 변경 할 수 있다.

    • 작업 복사본에서 업데이트를 실시할 폴더나 파일을 선택하여 마우스 우클릭으로 메뉴를 호출한다. 메뉴 중 SVN Update를 선택한다.

    • 팝 업과 함께 업데이트 내역이 실시간으로 보여진다.
    • 업데이트가 완료 되면 팝 업 하단에 Show log... 버튼과 OK 버튼이 활성화 된다.

      - Show log... 버튼을 클릭하면, 로그 팝 업이 열린다. 로그 팝 업 에서 각 리비전 별 로그 메시지를 확인 할 수 있다.
      - OK 버튼을 클릭하면 팝 업 이 닫힌다.

    되돌리기Revert

    작업을 하다보면, 자신의 현재 작업물을 버리고 이전 작업물로 되돌려야 할 경우가 종종 발생한다. 되돌리기 명령을 이용하면 최신 리비전으로 파일을 복구 시킬 수 있다.

    • 작업 복사본에서 수정 한 파일 중 되돌리기를 수행해야 할 폴더나 파일을 선택하여 마우스 우클릭으로 메뉴를 불러낸 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.

    • 서브 메뉴 항목 중 Revert 를 선택하면, 아래와 같은 팝 업이 출현한다.

      사용자 삽입 이미지
    • 되돌리기를 실행 할 파일을 선택 한 후 OK 버튼을 클릭 하면 해당 파일을 저장소의 가장 최신 리비전으로 되돌린다.

    잠금 및 잠금 해제Lock/Unlock

    잠금 중심 버전 관리 방식을 채택하는 것이 아니라 하더라도, 자신이 작업하고 있는 작업물을 다른 팀원이 함부로 수정하지 못하게 막아야 할 필요가 발생 경우가 있다. 이때는 해당 파일이나 폴더 전체를 잠금 상태로 만들고 난 다음, 작업이 완료 된 이후 해당 파일의 잠금을 해제하면 된다.

    • 잠금을 위한 파일 혹은 폴더를 선택하고 마우스 우클릭으로 메뉴를 불러낸 후, Tortoise SVN을 선택하여 서브 메뉴를 불러온다.

    • 서브 메뉴 항목 중 Get Lock을 선택하면 아래와 같은 팝 업이 출현한다.

      - 해당 파일에 잠금을 거는 이유를 Enter a message describing why you ar locking the file(s). 항목에 서술한다.
      - 파일 리스트를 확인 한 후 OK 버튼을 클릭하면 해당 파일을 잠금 상태로 만든다.
    • 저장소에 해당 파일의 잠금 상태가 전송 되면서 잠금 처리가 완료 된다.

    • 잠금 상태를 다시 잠금 해제 상태로 변환하기 위해서는 마우스 우클릭으로 메뉴를 불러낸 후, Tortoise SVN의 서브메뉴를 불러온다.

    • 서브 메뉴 항목 중 Release Lock을 선택하면 아래와 같은 팝 업이 나타난다.

      사용자 삽입 이미지
      - Unlock을 할 파일 목록을 확인 한 후 OK 버튼을 클릭하면 해당 파일을 잠금 해제 상태로 만든다.

    반응형

    + Recent posts