관련 이슈
Issuie #870
PR #897
기능 설명
초기 로딩되는 깃 데이터를 적절히 페이지네이션 하기 위한 선제작업입니다.
csmDict 를 최신 -> 과거 순서로 제공합니다.
기능 목록
✅ 따라서 최신 > 과거 순서를 유지한다고 할때,
기존 로직(stemDict 활용)을 사용한다면 squash merge 의 부모를 어떻게 찾느냐
개선 로직(DFS, commitDict 활용) : 페이지네이션과 어떻게 접목하느냐
둘중에 어떤게 적절한지 논의가 필요합니다! 그럼 이후 일감의 방향을 잡을 수 있을 것 같아요ㅎㅎ
참고
테스트케이스의 커밋 흐름은 아래와 같습니다.
// master = [0, 1, 2, 3, 4, 5]
// sub1 = [6,7, 8, 9,10, 11]
// sub2 = [12,13, 14,15,16]
- master 브랜치는 0 커밋에서 시작해 1 커밋으로 이어집니다.
- 커밋 1 지점에서 sub1 브랜치가 분기되어, 6, 7 커밋을 만듭니다.
- sub1 브랜치의 7 커밋 지점에서 sub2 브랜치가 분기되어, 12, 13 커밋을 만듭니다.
- sub1 브랜치의 8 커밋은 sub2 브랜치의 13 커밋을 병합하여 생성되었습니다.
- master 브랜치의 2 커밋은 sub1 브랜치의 8 커밋을 병합하여 생성되었습니다.
- 커밋 2 지점에서 sub1 브랜치가 다시 분기되어 9, 10 커밋을 만듭니다.
- sub1 브랜치의 10 커밋 지점에서 sub2 브랜치는 다시 분기되어 14, 15, 16 커밋을 생성합니다.
- sub1 브랜치의 11 커밋은 sub2 브랜치의 16 커밋을 병합하여 만들어졌습니다.
- master 브랜치의 3 커밋은 sub1 브랜치의 11 커밋을 병합하여 생성되었습니다.
- 이후 master 브랜치에 4, 5 커밋이 차례로 이어집니다.
// 0,1,4,5 commits have no-squash-commits
// 2 commit has squash-commits(8,13,12,7,6)
// 3 commit has squash-commits(11,16,15,14,10,9)
관련 이슈
Issuie #870
PR #897
기능 설명
초기 로딩되는 깃 데이터를 적절히 페이지네이션 하기 위한 선제작업입니다.
csmDict 를 최신 -> 과거 순서로 제공합니다.
기능 목록
추후 페이지네이션을 고려한다면 stemDict 를 자르고, 잘린 커밋에 대해 buildCSMNode의 DFS 를 실행하는 방식이 될 것 같습니다.. (확실하지 않음)
최신 > 과거 커밋 순서에서, stemDict 를 사용하는 방법으로는 squash Merge 를 적합하게 찾기 어려웠습니다. 따라서 로직을 DFS 로 수정했습니다. (이부분이 PR 코드리뷰에서 멘토님께서 말씀하신 연관된 엔진 같습니다)
✅ 따라서 최신 > 과거 순서를 유지한다고 할때,
기존 로직(stemDict 활용)을 사용한다면 squash merge 의 부모를 어떻게 찾느냐
개선 로직(DFS, commitDict 활용) : 페이지네이션과 어떻게 접목하느냐
둘중에 어떤게 적절한지 논의가 필요합니다! 그럼 이후 일감의 방향을 잡을 수 있을 것 같아요ㅎㅎ
참고
테스트케이스의 커밋 흐름은 아래와 같습니다.
// 0,1,4,5 commits have no-squash-commits
// 2 commit has squash-commits(8,13,12,7,6)
// 3 commit has squash-commits(11,16,15,14,10,9)