MergeHub 시연 재료
발표 시연에 쓰는 파일과 저장소다. 실제 업무 소스는 쓰지 않는다 - 전부 지어낸 코드다.
새로 만들기
powershell -ExecutionPolicy Bypass -File demo\make-demo.ps1
- 아래
plain·style·mergetool·big을 지우고 다시 만든다. - 병합 시연 저장소
D:\MergeHubDemo\repo를 지우고 다시 만든다(-RepoRoot로 바꿀 수 있다). 시연 한 번 할 때마다 다시 만들면 된다. - 만드는 코드는
tools\DemoMaker에 있다. C# 스타일 파일은 MergeHub 의 정리기(src\MergeHub\Services\CSharpStyle.cs)로 만든다.
들어 있는 것
| 폴더 | 시연 | 볼 것 |
|---|---|---|
plain\left · plain\right |
폴더 비교 | 같음 Same.cs · 다름 CodeDiff.cs · 주석만 다름 CommentOnly.cs · 머지 주석만 다름 MergeNoteOnly.cs · C# 스타일만 다름 StyleOnly.cs · 한쪽만 LeftOnly.cs / RightOnly.cs · XAML Views\Recipe.xaml · CP949 한글 한글설명.cs · 이진 Logo.png |
style\Allman.cs · style\Aurora.cs |
C# 스타일 맞춤 | 스타일 끔 남은 차이 39줄 → AURORA 또는 Allman 1줄(RetryCount 3 → 5, 진짜 변경) |
mergetool\ |
git mergetool 네 칸 |
BASE · LOCAL · REMOTE 세 벌, 결과 Weld.cs 는 git 모양 충돌 표시. 충돌 1 · 상대만 고친 줄 1 |
big\ |
큰 파일 | 7,479줄. 끝까지 줄 번호 · "마지막 차이" 로 멀리 건너뛰기 |
D:\MergeHubDemo\repo |
병합 | 아래 |
mergetool 네 칸으로 열기:
& "D:\Sorce\MergeTool\MergeHub\src\MergeHub\bin\Debug\net48\UbisamBase.Shell.exe" --merge `
--base demo\mergetool\Weld_BASE.cs --local demo\mergetool\Weld_LOCAL.cs `
--remote demo\mergetool\Weld_REMOTE.cs --merged demo\mergetool\Weld.cs
병합 시연 저장소
feature/mine 에 서 있다. MergeHub Git 탭에서 feature/theirs 를 골라 [Merge → 현재 브랜치로].
| 파일 | 경우 | MergeHub 에서 |
|---|---|---|
Line/Conveyor.cs |
같은 줄을 양쪽이 다르게 고침 | 충돌 → 네 칸에서 줄 단위로 |
Line/Laser.cs |
코드 줄 위에 서로 다른 머지 주석 줄 | 자동으로 풀림, 두 주석이 다 남음 |
Line/Camera.cs |
코드 줄 끝에 서로 다른 머지 주석 | 자동으로 풀림, 한 줄 끝에 두 주석 |
Line/Style.cs |
내 쪽 AURORA + 값 4, 상대 Allman + 값 6 | 충돌. C# AURORA 를 고르면 남은 차이 39줄 → 1줄 |
Line/NewPanel.cs |
양쪽이 같은 이름으로 새 파일 | 충돌(BASE 없음) |
Line/ToBeDeleted.cs |
내가 고침 · 상대가 지움 | [파일 남기기] / [파일 지우기] |
Line/한글설명.cs |
CP949 한글 파일에서 같은 줄 | 충돌, 저장해도 CP949 유지 |
Views/Main.xaml |
XAML 여러 줄 태그 안 | 충돌 |
Line/Gripper.cs · Line/Heater.cs |
서로 다른 자리 · 상대만 고침 | 자동 병합 |
git 으로만 병합하면 충돌 8개, MergeHub 로 병합하면 머지 주석만 다른 2개를 스스로 풀어 6개가 남는다.