2008-09-23 2 views
1

중첩을 조정하기 위해 코드의 들여 쓰기를 변경해야 할 필요가 있으면 SVN과 같은 시스템에서 변경 사항을 병합하는 데 불리한 영향을 미치는지 궁금합니다.파이썬의 공백 의존성은 병합과 관련하여 소스 제어와 얼마나 잘 작동합니까?

이것은 정말로 열린 질문입니다. 나는 일종의 정보/일화 낚시입니다.

편집 : 감사합니다! 나는 대답을 받아 들일 것이지만 어느 것을 받아 들일 것인가? 나는 그들 모두를 수정했다.

답변

1

프로젝트의 모든 사람들이 동일한 공백 스타일 (공백 또는 탭)을 사용하기로 동의하는 한 잘 작동합니다.

그러나 개발자가 전체 파일을 공백에서 탭으로 변환 한 경우 (이클립스는 기능이 Ctrl + Tab에 바인딩되어 있다고 생각합니다)가 있었기 때문에 diff를 거의 불가능하게 만들 수있었습니다.

2

저는 Python을 SVN과 Mercurial과 함께 사용했으며, 병합하는 번거 로움이 없습니다.

모두 diffing이 어떻게되는지에 달려 있습니다. 그리고 나는 한 레벨의 들여 쓰기 수준과 다른 수준의 차이점을 알 수있는 문자라고 생각합니다.

+0

감사합니다. – BCS

+0

정말 좋은 병합은 한쪽면의 편집과 다른 쪽면의 탭을 인식하고 둘 다 수행합니다 ... – BCS

1

일반적으로 소스 제어 시스템은 기본적으로 줄 단위로 병합됩니다. 나는 파이썬 코드를 병합하는 것이 합리적으로 들여 쓰기 된 다른 소스 코드를 병합하는 것과 다르지 않다는 것을 발견했다. 한 프로그래머가 if 문 (전체 블록 들여 쓰기)에 코드 블록을 래핑하고 다른 프로그래머가 블록 내부의 내용을 수정하면 병합 충돌이 발생합니다. 다행히이 경우 충돌은 해결하기가 쉽습니다.

외부 병합 도구를 사용하는 경우 도구가 위의 시나리오를 자동으로 고려하는보다 자세한 텍스트 병합 알고리즘을 지원할 수 있습니다.

관련 문제