가능합니까? 그렇다면 어떻게해야합니까?체크인시 SVN 자동 코드 서식 지정?
코드는 C#이며 우리는 TortoiseSVN을 사용하고 있습니다.
나는 모든 검사마다 코드를 자동으로 형식 지정하기 만하면됩니다.
덕분에 많은
가능합니까? 그렇다면 어떻게해야합니까?체크인시 SVN 자동 코드 서식 지정?
코드는 C#이며 우리는 TortoiseSVN을 사용하고 있습니다.
나는 모든 검사마다 코드를 자동으로 형식 지정하기 만하면됩니다.
덕분에 많은
당신은 신성한 전쟁터를 만지고 있습니다. 사람들의 서식을 모으는 일은 갈퀴와 횃불을 요구하고 있습니다.
내 추천 : Do not.
당신이 C#을 말하고 개발자가 Visual Studio를 사용하고 있다면, VS에는 많은 자동 서식 도구가 있습니다. 닫는 중괄호와 대/소문자를 입력하면 코드를 자동 서식을 지정할 수 있습니다.
더 나은 해결책은 모든 개발자가 동일한 자동 서식 설정을 사용하도록하는 것입니다.
도구 -> 옵션, 텍스트 편집기 -> C# -> 포맷
당신은 VS에서 동일한 코드 포맷 설정을 사용하는 것에 동의 할 수있는 팀을 얻을 수 있습니다, 그래서 만약 이러한 설정은 내보낼 수 있습니다, 소스 컨트롤 시스템에서 수행하는 문제를 피할 수 있습니다.
이런 일을 할 때 지옥에 빠지면 다른 사람들처럼 사전 커밋 훅 (pre-commit hook)을 사용하는 것이 좋습니다. SVN 서버가 Windows에서 실행중인 경우 후크 스크립트를 작성하는 데 CaptainHook을 권장 할 수 있습니까? 모든 .NET 언어로 작성할 수있는 플러그인 가능 훅 스크립트.
나는 당신이 당신의 저장소에이 사용 a pre-commit hook을 할 수 있다고 생각합니다.
편집 나쁜 생각이라고 생각하는 사람들에게 (나는 그렇지 않다는 말은 아닙니다) : 조직에서 특정 코드 스타일이나 코드 서식을 시행하는 것은 흔한 일입니다. 때로는 이러한 규칙이 매우 유창하고 엄격하게 적용될 수 있으며, 일반적으로 인간 행동 (예 : 저장소에 무엇인가 커밋하기 전에 올바른 스타일로 서식 지정)과 관련된 인간 행동이지만 프로세스 자동화는 때로는 유용 할 수 있습니다.
다른 방법으로는 커밋 전에 자동으로 확인을 수행 할 수 있지만 확인이 실패하더라도 커밋을 허용하지만 전자 메일이나 누군가 다른 사람이 스타일.
가능하지만 아주 나쁜 생각입니다.
자동 코드 포맷터가 완벽하지 않으므로 사람들이 틱 할 수 있다고 거의 보장 할 수 있습니다.
그렇다면 미리 커밋 된 후크를 사용해보십시오.
SVN 서버가 Windows 또는 Linux 시스템에서 실행되고 있습니까? 그리고 어떤 코드 포맷터를 사용하고 싶습니까?
나는 NArrange (http://www.narrange.net)을보고있다 – SuperSuperDev1234
그래, 나에게도 좋은 생각처럼 들리지 않는다. 코더 측의 일부 원칙은 깨진 코드보다 훨씬 안전합니다. – crashmstr
그런 경우에는별로 도움이되지 않습니다 ... Windows에서의 Subversion에 대해 많이 알지 못합니다. 그러나 Yoonpergeek이 당신을 덮어 두었던 것처럼 보입니다. 어쨌든, 고려해야 할 한 가지 점은 후크를 추가하는 대신 devs가 코드를 쉽게 포맷 할 수 있도록 스크립트를 작성하는 것입니다. 그런 다음 추한 코드가 체크인되면 정중하게 도구 사용을 요청할 수 있습니다. –
사전 커밋 (pre-commit) 훅 스크립트를 사용하면 가능합니다. 하지만 큰 문제가 생길 수 있기 때문에 첫 번째 커밋 후에 스크립트를 제거해야합니다.
커밋 된 데이터를 수정하면 클라이언트는이를 알지 못합니다. 따라서 스크립트가 파일의 형식을 수정하는 커밋 후에 저장소의 파일 내용은 작업 복사본의 파일과 다릅니다. 그러나 당신의 작업 카피는 여전히 저장소와 함께 최신이라고 생각한다. (어쨌든 수정은 막 저지른 것이다.)
그래서 다음 업데이트에, 당신은 지옥에 얻을 것이다 - 깨진 작업 복사본, 화가 사용자를 ...
그리고 물론
, 당신은 빌드를 깰 수 - 자동 서식은 가끔 효과가 있습니다.물론 이 올바른 서식 지정을 위해을 확인하고 오류가없는 경우 훅 스크립트를 구현하여 완벽하게 정상적으로 작동합니다.
TortoiseSVN을 사용하고 있으므로 client-side pre-commit hook에서 서식을 사용해 볼 수 있습니다.
이것이 최선의 이유입니다 ** repo <-> working-copy inconsistency. 아주 좋은 지적입니다. – Yoopergeek
충돌/부실 작업 복사본 문제는 다른 사람이 파일의 새 버전을 저장소에 커밋 한 경우와 다를 바가 없습니다. 이것은 서버에서 최신 버전을 가져옴으로써 해결되며, 사용자가 잊어 버리면 svn 클라이언트가 파일을 다시 커밋하려고 시도 할 때이를 감지합니다. –
Stefan이 말한대로, 문제는 커밋에 의해 미리 커밋 된 코드가 코드를 변경 했으므로 커밋 한 후 커밋 한 후 커밋을 즉시 업데이트해야한다는 것입니다. – Yoopergeek
대부분의 사람들이 여기 있습니다. 코드를 다시 작성하는 사전 커밋 후크를 추가하는 것에 동의합니다. 그러나 코딩 규칙에 맞지 않는 코드를 거부하고 사용자에게 알리는 사전 커밋 훅을 사용할 수는 있습니다. 오류.
좋습니다.
사전 커밋 스크립트를 사용하거나 더 나은 방법으로 IDE에서 자동으로 수행하는 방법을 찾습니다 (사전 커밋은 변경된 파일을 클라이언트로 푸시). Eclipse는 저장시 자동 포맷이 가능합니다.
개발자가 다른 형식으로 서식을 지정하면 커밋이 서식 변경 일 뿐이므로 혼란을 야기 할 수있는 파일을 찾을 수 있습니다.
일반적인 서식 지정 패턴은 매우 좋습니다. 소개하기가 어려울 지 모르지만 그만한 가치가있을 것입니다. 모든 변경 사항은 서식 변경뿐 아니라 실제 변경 사항입니다. 내 경험에 의하면 개발자는 이점을보고 받아 들일 것입니다.
저는 cvs와 java로 작업했고 jalopy를 자동 포맷으로 사용했습니다. 우리는 분기 시스템을 사용하여 의무적이었고 매우 잘 작동했습니다.
완전히 동의합니다 - 저장소에 코드 형식 옵션을 확인한 다음 모든 사람이 공유 할 수 있습니다. –
와우. 방금 언급했기 전까지는 프로젝트에 내 보낸 VS 서식 설정을 소스 제어에 포함시키지 않았습니다. 좋은 생각이야. – Yoopergeek
캡틴 훅 (CaptainHook)의 경우 패치 파일을 가지고 두 개의 버그를 수정하십시오. –