25.소스 코드 관리 시스템 지원

Edit

넥사크로플랫폼에서는 소스 코드 관리 시스템과 연계를 지원합니다. 지원하는 솔루션에 따라 기능이 다를 수 있습니다.

25.1서브버전(Subversion)

25.1.1서브버전 사용 설정

서브버전 클라이언트를 설치하면 넥사크로 스튜디오의 Tools > Options 창에서 Source Control 항목을 선택하고 SVN을 선택할 수 있습니다.

그림 25-1옵션_Source-Control_화면

넥사크로 스튜디오에서 서브버전 사용 시 지원하는 옵션은 아래와 같습니다.

Option

설명

General (필수항목)

Execute file path

SVN 명령행 클라이언트 실행 파일의 경로

Project Repository

프로젝트 소스를 관리할 원격 저장소 주소와 계정 정보

Additional Repository

Interaction the generate path

Generate Path도 소스관리를 적용할지 여부 설정

Generate Repository

제너레이트된 소스를 관리할 원격 저장소 주소와 계정 정보

Project Management

Check SVN status when opened project

프로젝트를 열 때 파일의 상태를 자동으로 검사할지 설정

Update file(s) when opening the project

프로젝트를 열 때 파일의 최신 버전을 자동으로 가져올지 설정

Commit file(s) when closing the project

프로젝트를 닫을 때 체크아웃 상태의 파일을 자동으로 커밋할지 설정

Updated modification list after performing the command (삭제됨)

명령을 수행한 뒤 수정 항목 리스트를 자동 갱신할지 설정

File Management (xfdl, xjs 파일만 적용)

Add file when inserted

새 파일을 추가할 때 자동으로 Add 명령을 수행할지 설정

Update file when opening the file

파일을 열 때 최신 버전 파일을 자동으로 가져올지 설정

Commit file when saving the file

파일을 저장할 때 자동으로 커밋할지 설정

Lock file when edited

파일을 편집하는 중에는 자동으로 잠금 상태로 설정해 다른 사용자가 편집할 수 없게 할지 설정

Externals

Diff Viewer execute file path

버전 별 파일을 비교하기 위한 외부 프로그램을 등록

Merge Tool execute file path

파일 병합시 사용할 외부 프로그램을 등록

아래 항목은 3가지 옵션 중 하나를 선택할 수 있습니다.

Commit file(s) when closing the project

Add file when inserted

Commit file when saving the file

Lock file when edited


Commit Automatically : 사용자 확인없이 자동으로 수행

Prompt for Commit : 사용자 확인 후 처리

Do nothing : 옵션 사용하지 않음

서브버전 클라이언트를 설치해야 넥사크로 스튜디오에서 SVN 옵션이 활성화됩니다. 넥사크로 스튜디오에서는 윈도우 레지스트리에 등록된 항목으로 서브버전 클라이언트 설치 여부를 확인합니다.

"User execute file path" 항목 오른쪽에 [?] 버튼을 클릭하면 SVN 클라이언트 설치에 필요한 정보를 확인할 수 있습니다.

서브버전 1.6.0 버전 미만일 경우 넥사크로 스튜디오에서 SVN 옵션이 보이지 않거나 일부 기능이 동작하지 않을 수 있습니다.

서브버전 클라이언트 설치와 관련된 안내는 별도 제공하지 않습니다. 설치 관련 안내는 아래 링크를 참고하세요.

http://subversion.apache.org/packages.html

25.1.2툴바

넥사크로 스튜디오 툴바에서는 아래와 같은 서브버전 기능을 지원합니다.

그림 25-2svn_toolbar


항목

설명

Update

저장소에 등록된 최신 버전의 파일 내용을 받습니다.

Commit

변경된 내용을 저장소에 반영합니다.

Revert

이전에 수행한 작업을 취소해 파일 상태를 이전 상태로 복구합니다.

Lock

지정된 파일을 다른 사용자가 사용할 수 없는 잠금 설정 상태로 변경합니다.

Unlock

설정된 잠금 설정 상태를 해제합니다.

Import

프로젝트를 저장소에 등록합니다.

Add

새로운 파일을 추가합니다. 추가된 파일은 커밋 명령으로 저장소에 반영할 수 있습니다.

Delete

파일을 삭제 상태로 변경합니다. 커밋 명령으로 저장소에서 제거할 수 있습니다. 사용자 PC에 저장된 실제 파일은 삭제되지 않습니다.

Rename

파일 이름을 변경합니다. SVN에서는 파일명 변경 기능이 따로 있는 것은 아니며 Add/Delete 방식으로 처리합니다.

Edit Conflicts

충돌 상태의 파일을 편집합니다.

Resolve

작업 파일의 충돌을 제거합니다.

Clean up

작업 파일을 재귀적으로 순회하면서 실패한 작업에 대해 무효화 처리합니다.

Refresh Status

파일의 상태를 최신 상태로 변경합니다.

Show Log

파일 변경 이력을 확인합니다.

Compare with Previous Revision

이전 버전과 다른 부분을 비교합니다. Options에서 ‘Program used for diff’ 항목으로 등록된 프로그램이 실행됩니다.

Repository Browser

Repository Browser를 실행합니다.

메뉴바에서도 동일한 기능을 제공합니다. 다만 메뉴바에는 View 메뉴가 있어 SVN Output 창과 Check for Modification (Project) 창을 활성화/비활성화 할 수 있습니다.

SVN Bar와 Menu는 서브버전 클라이언트를 설치한 후 넥사크로 스튜디오의 Tools > Options 창에서 Source Control 항목을 설정해야 활성화되어 사용할 수 있습니다.

25.1.3인증(Authentication)

옵션에서 Project Repository, Generate Repository 항목에 저장소 정보와 계정 정보를 정상적으로 설정하고 저장할 때 저장소에 접근해 인증을 처리합니다. 정상적으로 인증된 경우에는 별도의 메시지를 출력하지 않으며 인증이 실패한 경우에는 아래와 같이 메시지를 표시합니다.

저장소에 연결되지 않은 프로젝트를 실행한 상태에서 SVN 사용 옵션을 변경한 경우에는 아래와 같은 저장소 등록 여부를 묻는 팝업 메시지가 나타납니다. ‘Yes’를 클릭할 경우에는 Import 기능을 실행합니다.

그림 25-3import_repository_message

Project Repository만 설정한 경우에는 Project Repository만 표시되며 Generate Repository까지 설정한 경우에는 Project Repository, Generate Repository 두 가지 항목이 모두 표시됩니다. 프로젝트 경로는 기본 설정한 경로 하위에 프로젝트명으로 폴더를 생성하고 Repository를 자동으로 지정합니다.

25.1.4기본 기능

프로젝트 신규 등록(Import)

신규 프로젝트를 생성하거나 저장소에 등록되지 않은 프로젝트를 등록할 수 있습니다. 서브버전 사용 설정을 한 상태에서 신규 프로젝트를 생성한 경우 자동으로 실행되며 등록되지 않은 프로젝트는 메뉴 [SVN > Import]를 선택하고 실행할 수 있습니다.

항목

설명

Project Repository

프로젝트 소스를 등록될 저장소 주소를 지정합니다.

옵션에서 지정한 저장소 주소 뒤에 프로젝트명으로 폴더를 생성합니다.

Generate Repository

제너레이트된 소스를 등록할 저장소 주소를 지정합니다.

Import Message

Import 메시지를 입력합니다.

Include Ignored Files

서브버전에서 설정된 무시될 파일의 포함 유무를 결정합니다.

Import된 프로젝트는 서브버전과 연동되기 위해서 자동으로 체크아웃이 진행됩니다.

그림 25-4import_and_checkout

커밋(Commit)

작업 사본의 변경 내용을 저장소에 반영합니다.

그림 25-5commit_popup

항목

설명

Message

커밋 메시지를 입력합니다.

Path

커밋할 파일 목록을 표시합니다.

Keep Locks

커밋 대상의 잠금 상태를 유지할지 결정합니다.

해당 기능은 대상 파일이 잠금 상태인 경우에만 활성화됩니다.

파일 추가하기(Add)

연결된 저장소에 새로운 파일을 등록할 때 사용합니다.

그림 25-6add_popup

항목

설명

Path

추가할 파일 목록을 표시합니다.

목록에서 선택한 파일 항목만 저장소에 등록되도록 설정되며, 커밋 명령을 수행해야 저장소에 실제로 반영됩니다.

파일 삭제하기(Delete)

연결된 저장소에서 파일을 삭제할 때 사용합니다.

그림 25-7delete_popup

항목

설명

Message

삭제 메시지를 입력합니다.

Path

삭제할 파일을 표시합니다.

지정된 대상은 저장소에서 제거되도록 설정되며, 커밋 명령을 수행해야 저장소에 실제로 반영됩니다.

메뉴 [Edit > Delete]를 선택해서 삭제해도 [Svn > Delete]를 선택한 것과 같은 상태로 파일을 처리합니다. 다만 [Svn > Delete]를 선택한 경우에는 Delete 상태로 변경한 사유를 메시지로 입력할 수 있습니다.

넥사크로 스튜디오가 아닌 윈도우 탐색기나 다른 도구에서 저장소에 등록된 파일을 SVN 도구를 사용하지 않고 삭제한 경우에는 해당 파일의 상태가 missing으로 처리됩니다. 상태가 missing으로 처리된 경우에는 update를 통해 파일을 복구할 수 있습니다.


이름 변경(Rename)

대상의 이름을 변경합니다. Rename 기능은 대상 파일의 사본을 변경할 이름으로 복사하여 ‘Add’하고 기존 파일을 ‘Delete’하는 방식으로 진행되며 바로 커밋 명령을 수행합니다.

이름을 변경하더라도 메뉴 [SVN > Show Log]에서 이전 변경 이력을 모두 확인할 수 있습니다.

업데이트(Update)

사용자 PC의 작업 사본을 연결된 저장소의 최신 버전으로 변경합니다. Update 명령은 파일의 SVN Status가 확인된 이후에만 활성화되며 별도의 입력 없이 수행 결과만 표시됩니다.

25.1.5파일 잠그기

파일 잠그기(Lock)

파일을 접속한 사용자만 사용하도록 잠금 상태로 변경합니다.

그림 25-8lock_popup

항목

설명

Message

Lock 메시지를 입력합니다.

Path

잠금 상태로 변경할 대상 파일 목록을 표시합니다.

잠금 해제하기(UnLock)

사용자가 잠금 상태로 변경한 파일을 잠금 해제 상태로 변경합니다.

그림 25-9unlock_popup

항목

설명

Path

잠금 해제 상태로 변경할 대상 파일 목록을 표시합니다.

25.1.6변경 기록 활용

변경 이력(Show Log)

대상의 Log를 표시합니다.

그림 25-10show_log_popup

이전 리비전 비교하기(Compare with Previous Revision)

작업 사본과 저장소에 저장된 이전 리비전 대상을 비교하여 차이점을 보여줍니다. 해당 기능은 Option에 ‘Diff Viewer execute file path’가 설정된 경우 해당 프로그램을 실행해 처리합니다.

다음은 Compare with Previous Revision를 실행하여 외부 Diff 툴을 통해 main.xfdl 파일의 최종 리비전과 이전 리비전을 비교하는 모습입니다.

그림 25-11compare_with_previous_revision

넥사크로 스튜디오 설치 시 diff, merge 도구를 기본 제공하지는 않습니다. 상용도구를 사용하거나 오픈소스 또는 프리웨어를 설치해 사용할 수 있습니다.

http://winmerge.org/ (오픈소스)

https://sourcegear.com/diffmerge/ (프리웨어)

수정 사항 되돌리기(Revert)

이전 작업내용을 취소하여 작업 사본의 상태를 되돌립니다.

그림 25-12revert_popup

항목

설명

Path

대상 파일 목록을 표시합니다.

새로 고침(Refresh Status)

작업 사본의 SVN Status 상태를 Refresh 하는 기능입니다.

25.1.7저장소 탐색기(Repository Browser)

저장소 파일 목록을 표시하고 SVN 기능을 지원하는 서브버전 클라이언트 도구입니다.

그림 25-13repository_browser_popup

항목

설명

Folder Tree

접속된 저장소의 경로와 폴더를 트리 목록으로 표시합니다.

File List

현재 선택된 폴더의 파일을 목록에 표시합니다.

저장소를 선택하면 아래와 같은 컨텍스트 메뉴가 지원됩니다.

그림 25-14repository_browser_context_menu

항목

설명

Check Out

선택한 저장소에 저장된 파일을 지정된 사용자 PC 폴더 위치에 체크아웃합니다.

Export

선택한 저장소에 저장된 파일을 지정된 사용자 PC 폴더 위치로 내보냅니다. 내보낸 파일은 체크아웃되지 않은 상태로 저장소와 연동되지 않습니다.

Show Log

해당 저장소 변경 이력을 표시합니다.

Refresh Status

폴더 정보를 최신 상태로 변경합니다.

Create Folder

선택한 저장소에 하위 폴더를 생성합니다.

Add Folder

PC에서 사용자가 선택한 폴더에 포함된 파일을 지정된 저장소에 추가합니다.

Add File

PC에서 사용자가 선택한 파일을 저장소에 추가합니다.

Rename

선택한 저장소의 이름을 변경합니다.

Delete

선택한 저장소를 삭제합니다.

파일을 선택한 상태에서는 아래와 같은 컨텍스트 메뉴를 지원합니다.

그림 25-15repository_browser_context_menu_file

항목

설명

Show Log

해당 파일 변경 이력을 표시합니다.

Refresh Status

파일 정보를 최신 상태로 변경합니다.

Rename

선택한 파일의 이름을 변경합니다.

Delete

선택한 파일을 삭제합니다.

Save as

선택한 파일 복사본을 생성합니다.

체크아웃(Check Out)

저장소 탐색기에서 폴더를 선택한 후 원하는 위치로 체크아웃할 수 있습니다.

파일 내보내기(Export)

저장소 탐색기에서 폴더를 선택 후 원하는 위치로 파일을 내보낼 수 있습니다. 내보낸 파일은 저장소와 연동되지 않습니다.

25.1.8SVN Output

SVN 기능에 대한 수행 결과를 보여주는 창입니다.

그림 25-16SVN_output_window

25.1.9SVN Explorer

SVN으로 관리되는 프로젝트 및 저장소에 속한 디렉토리/파일의 상태 정보를 제공하는 창입니다.

그림 25-17Check_for_Modification_window

상단의 메뉴 버튼을 클릭하면 보고 싶은 정보를 선택할 수 있습니다.


항목

설명

Show unmodified

변경 상태가 아닌 항목도 보여줍니다.

Show unversioned

SVN에 등록되지 않은 항목도 보여줍니다.

Refresh list

현재 리스트를 최신 상태로 갱신합니다.

25.1.10Subversion Status

Subversion의 상태에 따라서 넥사크로 스튜디오 Project Explorer에 다음과 같이 표시됩니다.

항목

설명

added

파일이 저장소에 Add로 등록된 상태입니다.

conflicted

Update 처리 중 충돌이 발생한 상태입니다.

locked

파일이 잠긴 상태입니다.

modified

파일이 수정된 상태입니다.

nonversioned

저장소에 등록되지 않은 파일입니다.

normal

수정된 내용이 없는 상태입니다.

25.2깃(Git)

25.2.1깃 사용 설정하기

Git 옵션 설정하기

깃 클라이언트를 설치하면 넥사크로 스튜디오 메뉴 [Tools > Options] 창에서 [Source Control] 항목을 선택하고 Source Control Management Type 목록에서 "Git"을 선택합니다.

넥사크로 스튜디오에서 깃 사용 시 지원하는 옵션은 아래와 같습니다.

Option

설명

General (필수항목)

Executable file path

깃 클라이언트 실행파일을 설치한 경로를 입력합니다.

기본 경로에 git.exe 파일이 설치되어 있다면 자동으로 옵션 값이 지정됩니다.

User Name

깃 동작에 필요한 사용자 이름을 입력합니다.

User E-mail

깃 동작에 필요한 사용자 이메일 게정을 입력합니다.

Git Management

Interact with generate path

Generate Path도 소스관리를 적용할지 여부를 설정합니다.

Push after commit

원격 저장소가 연결되어 있는 경우, Commit 명령 수행 후 자동으로 Push 명령까지 수행할지 설정합니다.

Pull before push

원격 저장소가 연결되어 있는 경우, Push 명령 수행 후 자동으로 Pull 명령까지 수행할지 설정합니다.

Project Management

Pull when opening the project

프로젝트를 열었을 때 원격 저장소가 연결되어 있다면 최신 항목을 받아옵니다 (Pull)

Push when closing the project

프로젝트를 닫을 때 원격 저장소가 연결되어 있다면 변경 사항을 발행합니다 (Pull -> Push 수행)

File Management (xfdl, xjs 파일만 적용)

Commit added file

파일 추가 시 Commit 수행 여부를 설정합니다.

Commit saved file

파일 저장 시 Commit 수행 여부를 설정합니다.

Externals

Diff tool path

"Show Diff" 명령 시 사용할 실행 파일 경로를 입력합니다.

해당 옵션을 설정하지 않으면 "Show Diff" 기능을 사용할 수 없습니다.

Merge tool path

"Edit Conflicted" 명령 시 사용할 실행 파일 경로를 입력합니다.

해당 옵션을 설정하지 않으면 "Edit Conflicted" 기능을 사용할 수 없습니다.

Merge tool arguments

Merge Tool에서 사용하는 Argument 값을 입력합니다.

아래 항목은 3가지 옵션 중 하나를 선택할 수 있습니다.

Commit added file

Commit saved file



Prompt for Commit: 사용자 확인 후 Commit 수행

Commit Automatically: 자동으로 Commit 수행

Do nothing: 옵션 사용하지 않음

"Executable file path" 항목 오른쪽에 [?] 버튼을 클릭하면 깃 클라이언트 설치에 필요한 정보를 확인할 수 있습니다.

깃 클라이언트는 2.13.0 버전 이상을 설치해야 합니다.

깃 클라이언트 설치와 관련된 안내는 별도 제공하지 않습니다. 설치 관련 안내는 아래 링크를 참고하세요.

https://git-scm.com/download/win

Merge tool arguments 지정하기

[Edit Conflicted] 명령시에 할 때 사용할 Merge Tool 실행 파일을 지정한 경우 해당 툴에 맞는 arguments 값을 입력해주어야 합니다. "Merge tool arguments" 항목 오른쪽에 [?] 버튼을 클릭하면 관련 치환자 정보를 보여줍니다.

주로 사용하는 Merge tool arguments는 아래와 같이 입력할 수 있습니다.

아래 내용은 입력 예로 제공하는 것이며, 해당 툴 버전에 따라 달라질 수 있습니다.

Merge tool

Arguments

WinMergeU.exe

$theirs$ $mine$ $merged$

TortoiseMerge.exe

/base:$base$ /their:$their$ /mine:$mine$ merged:$merged$

CodeMerge.exe

/tf=$theirs$ /mf=$mine$ /rf=$merged$ /bf=$base$

Meld.exe

$theirs$ $mine$ $merged$

p4Merge.exe

$base$ $theirs$ $mine$ $merged$

sgdm.exe

/t1="Mine" /t2="Base" /t3="Their" /r=$merged$ $mine$ $base$ $theirs$

kdiff3.exe

$base$ $mine$ $theirs$ -o $merged$ --L1 Base --L2 Mine --L3 Theirs

25.2.2프로젝트 시작하기

로컬 저장소에 프로젝트 등록하기

로컬 저장소에 관리되고 있지 않은 프로젝트를 열면 등록할지 여부를 확인합니다. [Yes] 버튼을 클릭하면 해당 프로젝트에 대해 "Init New Repository" 명령을 실행합니다. [No] 버튼을 클릭하더라도 메뉴[Git > Init New Repository]를 선택해 프로젝트를 등록할 수 있습니다.

프로젝트를 등록하면 Git 로컬 저장소가 초기화(init)되고 파일을 추가(add)하고 반영(commit) 합니다.

원격 저장소에 프로젝트 등록하기

메뉴[Git > Set Remote Repository]를 선택해 원격 저장소 연결을 설정할 수 있습니다. Interact with generate path 옵션을 True로 설정한 경우에는 Generate Repository를 지정할 수 있습니다.

항목

설명

Remote Name

원격 저장소의 별칭을 지정합니다.

기본 설정값은 "origin"입니다.

Remote URL

원격 저장소 경로를 지정합니다.

Local, HTTP, SSH, Git 4가지 프로토콜을 설정할 수 있습니다.

Remote Branch Name

로컬 작업 내용을 발행할 브랜치를 지정합니다.

기본 설정값은 "master"입니다.

원격 저장소에서 프로젝트 내려받기

메뉴[Git > Clone Repository]를 선택하면 원격 저장소에 등록된 프로젝트를 로컬로 내려받아 프로젝트를 시작할 수 있습니다.

항목

설명

Remote Repository

원격 저장소 경로를 지정합니다.

Target Path

프로젝트를 내려받을 로컬 경로를 지정합니다.

Open project after clone

Clone 명령 수행 후 프로젝트 파일(xprj)이 있는 경우 프로젝트를 열지 여부를 설정합니다.

Clone 명령을 수행한 경우 Remote Repository에 설정한 원격 저장소는 프로젝트의 원격 저장소로 자동 설정됩니다.

Target Path 디렉토리는 빈 디렉토리만 사용할 수 있습니다. 디렉토리 안에 파일이나 다른 디렉토리가 있는 경우에는 Clone 명령을 처리할 수 없습니다.


원격 저장소 등록 정보 삭제하기

메뉴[Git > Unset Remote Repository]를 선택하면 로컬 저장소에서 추적중인 원격 저장소 정보를 삭제합니다.

25.2.3변경 항목 처리하기

새로운 파일을 추가하거나 기존 파일 편집하기

프로젝트에 새로 추가한 파일은 Project Explorer 또는 Resource Explorer 창에서 "unversioned" 상태로 표시됩니다. 기존 파일을 편집한 경우에는 "modified" 상태로 표시됩니다. Git Explorer에서는 추가하거나 변경된 파일 또는 상위 디렉토리 정보만 표시합니다. 또한 각 파일의 상태 정보를 확인할 수 있습니다.

로컬 저장소에 변경 내용 반영하기

Project Explorer 또는 Resource Explorer 창에서 변경된 파일을 반영하려면 파일을 선택하고 컨텍스트 메뉴에서 [Git > Commit] 항목을 선택합니다. Git Explorer 창에서는 반영할 대상 파일을 선택하고 [Commit] 버튼을 클릭해 변경 내용을 반영할 수 있습니다.

Commit Message를 작성하지 않으면 Commit 할 수 있는 버튼이 활성화되지 않습니다. 메시지 입력 창에 Commit 작업에 대한 설명을 입력해야 합니다.

원격 저장소에 연결되어 있는 경우 Push after commit 항목을 체크하면 Commit 작업 이후에 원격 저장소 Push 작업을 진행합니다. 해당 항목 체크 시에는 Git 관련 기본 옵션도 같이 변경됩니다.

원격 저장소에 변경 내용 반영하기

원격 저장소에 연결되어 있는 경우 로컬 저장소에 Commit 한 변경 내용을 Push 명령으로 발행할 수 있습니다. 메뉴[Git > Push] 또는 Git Explorer 창에서 [Push] 버튼을 클릭합니다.

Git Explorer 창에서 Commit 항목을 더블클릭하거나 메뉴[Git > Push] 창을 열면 파일 변경 내용을 확인할 수 있습니다.

25.2.4충돌이 발생한 파일 처리하기

다른 사용자와 같은 파일을 작업한 경우에는 충돌이 발생할 수 있습니다. 충돌이 발생하면 "unmerged" 상태로 표시됩니다. 충돌이 발생한 파일을 직접 열어서 코드를 수정할 수 있습니다. Git 옵션에서 "Merge tool path"를 등록한 경우에는 메뉴[Git > Edit Conflicted] 항목을 선택해 병합 도구를 실행해 코드를 수정할 수 있습니다.

자동 병합되는 경우

로컬 저장소와 원격 저장소의 파일이 다른 경우에는 로컬 저장소 Commit 후 Push 명령 수행 시 아래와 같은 메시지가 보여질 수 있습니다. 이런 경우에는 먼저 Pull 명령을 수행한 이후에 Push 명령을 수행합니다.

Pull 명령 수행 시 자동 병합이 성공적으로 처리되는 경우에는 Git Output 창에 해당 정보를 출력합니다. 병합된 파일이 열려져 있는 경우에는 파일을 다시 로딩합니다.

충돌이 발생하는 경우

Pull 명령 수행 시 자동 병합이 처리되지 못하는 경우에는 아래와 같은 메시지를 출력하고 파일 내 충돌이 발생한 정보를 표시합니다.

충돌이 발생한 파일은 넥사크로 스튜디오 XML 에디터로 열립니다. "HEAD" 아래 있는 코드가 Pull 명령 수행 전 Local Repository에 Commit 된 코드입니다. "=======" 아래 있는 코드는 Remote Repository에서 가져온 코드입니다. 변경된 코드를 확인하고 수정하면 충돌을 해결할 수 있습니다.

충돌이 해결되면 Commit 후 Push 명령을 실행합니다.

Merge tool 실행해서 충돌 해결하기

충돌이 발생한 코드가 간단한 경우에는 XML 에디터에서도 쉽게 수정할 수 있지만, 충돌이 발생한 코드가 복잡한 경우에는 외부 Merge tool을 사용해서 충돌을 해결할 수 있습니다.

Merge tool을 사용하는 경우 깃 클라이언트에서 임시 파일을 생성합니다. 정상적으로 충돌을 해결하고 저장한 경우에는 임시 파일을 삭제해주는데, 간혹 삭제가 되지 않을 수 있습니다. 임시 파일의 제어는 깃 클라이언트에서 처리하는 것이라 넥사크로 스튜디오에서 강제적으로 임시 파일을 삭제하지는 않습니다. 필요한 경우 해당 폴더에서 임시 파일을 직접 삭제해주어야 합니다.


25.2.5브랜치 생성/변경하기

메뉴 [Git > Checkout Branch]를 선택하면 브랜치를 변경하거나 새로운 브랜치를 생성할 수 있습니다.

새로운 브랜치 생성하기

기존 브랜치 목록에 없는 브랜치명을 입력하면 새로운 브랜치가 생성됩니다.

브랜치 변경하기

브랜치 목록에서 다른 브랜치를 선택하면 브랜치를 변경할 수 있습니다.

브랜치 상태 확인하기

메뉴 [Git > Show Project Log] 또는 [Git > Show File Log]에서 Commit 또는 파일 단위로 브랜치 상태를 확인할 수 있습니다.

항목

설명

Commit

Commit SHA-1 체크섬 정보

Message

Commit 메시지

Author

작업자

Date

작업 시간

Branch

Commit 작업 별 브랜치 정보

노란색: 현재 작업 브랜치

녹색: 로컬 저장소 브랜치

분홍색: 원격 저장소 브랜치

항목을 더블클릭하거나 컨텍스트 메뉴에서 [Show Commit] 항목을 선택하면 Commit 정보 창을 표시합니다.

25.2.6작업창 / 상태 정보

Git Output

Git 기능에 대한 수행 결과를 보여주는 창입니다. 실행 중 오류가 발생한 경우에는 강조된 색상으로 표시됩니다.

Git Explorer

현재 프로젝트에서 변경된 내용을 보여주고 필요한 작업을 처리할 수 있습니다. Push 영역과 Commit 영역 2가지로 구분할 수 있습니다. Interact with generate path 옵션을 True로 설정한 경우에는 Project, Generate를 구분하는 상단 탭 버튼이 표시됩니다.

Push

원격 저장소가 연결되어 있는 경우, 원격 저장소로 발행되지 않은 Commit 항목을 표시합니다. Push 버튼을 클릭하면 원격 저장소로 발행할 수 있습니다.

Commit

로컬 저장소에서 Commit 할 수 있는 대상 목록을 표시합니다. Commit 메시지 입력 후 Commit 버튼을 클릭하면 로컬 저장소로 Commit을 실행합니다.

Project 영역의 Git Explorer에서 수행하는 동작은 Menu에서 수행하는 것과 마찬가지로 Generate 경로의 항목과 연계되어(Commit 수행 시 Generate 항목도 Commit 수행) 처리합니다. 하지만 Project 영역과 Generate 영역의 항목들의 상태가 달라서 연계로 처리할 수 없을 경우 Generate 영역의 Explorer에서 Generate 영역의 항목들을 제어할 수 있습니다. Generate Explorer는 Project 영역의 항목들과 연계되어 처리되지 않습니다.

Git Status

상태에 따라 Project Explorer / Git Explorer에 상태 아이콘이 표시됩니다.

Git은 디렉토리가 상태값을 가지고 있지 않아 하위 항목의 상태값 중 우선순위에 따라 디렉토리에 상태 아이콘이 표시됩니다. 위의 이미지에서 FrameBase 디렉토리는 하위 Form 항목의 상태값 우선순위에 따라 Conflicted 상태 아이콘을 표시합니다. 상태값의 우선순위는 아래와 같습니다.

Conflicted > Modified > Added > Unmodified > Unversioned

Project Explorer에서 프로젝트명은 xprj 파일로 관리되지만, 최상위 경로 디렉토리로 사용되고 있어서 하위 항목의 우선순위에 따라 상태 아이콘을 표시합니다.