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개가 남는다.