2013-10-13 4 views
1

SharpSVN을 사용하여 파일의 지정된 줄을 마지막으로 수정 한 것을 쉽게 확인할 수 있습니까? 1SharpSVN을 사용하여 첫 번째 줄을 찾습니다?

커밋 :

의 나는 다음과 같은 세 가지 커밋 있다고 가정 해 봅시다

Hello 

2 커밋 :

Hello, World! 

3 커밋 :

Hello, World! 
Hi There :D 

내가 좋겠 어떤 종류의 O를 찾고있다. 다음을 수행 F 기능 :

LastMod(lineNum: 1); //returns 2, since the first line was last modified in commit 2 
LastMod(lineNum: 2); //returns 3, for the same reason 

내가 오히려 큰 규모로이 작업을 수행해야 할 것입니다, 그래서 그냥 '무력'에서 각 행을 비교 (파일 당 라인의 수백/수천 큰 SVN 저장소) 각각의 이전 커밋은 작동하지 않을 것입니다. SVN이 내가 찾고있는 것을위한 구현을 제공하는지 확실하지 않습니다. 저는 SVN과 SharpSVN을 처음 사용합니다.

감사합니다.

Subversion은 특별한 명령이 annotate 또는 blame 또는 praise라는이 ... 좋아

답변

2

, 나는 SharpSVN에 대해 아무 생각이 없다,하지만 난 내가 도울 수 있다고 생각합니다. 이 명령이 수행하는 작업은 파일의 모든 행을 나열하고 마지막 행이 변경된 때 및 누구에 의해 표시되는지를 보여줍니다.

C> REM: produce an annotated report on foo.c# 
C> svn blame foo.c# 

이이 같은 (음,이 같은하지 아무것도 이것은 자바 코드 munged,하지만 당신은 아이디어를 얻을 때문에) 보이는 보고서를 생성합니다 :

109990  jevans package com.tc.cache.frontend; 
109990  jevans 
109990  jevans import com.tangosol.net.CacheFactory; 
109990  jevans import com.tangosol.net.NamedCache; 
140072 dweintraub import java.util.ArrayList; 
136130 ihroseline import java.util.List; 
136130 ihroseline import java.util.Map; 
123931  bfelds import org.apache.commons.logging.Log; 
109990  jevans import org.apache.commons.logging.LogFactory; 

첫 번째 열은입니다 행이 변경된 개정판과 두 번째 열은 누가 행을 변경했는지입니다. 나머지는 소스 코드 라인입니다.

C# 개발자가 아니기 때문에 나는 그 이상으로 도울 수 없습니다. 그러나 SharpSVN에는 동일한 일을하는 것처럼 보이는 SvnBlameArgs이라는 클래스가 있습니다. SvnBlameEventArgs 클래스도 있습니다.

또한 Blame 메서드가 SvnClient 클래스의 일부입니다. 나는 SvnBlame 방법이 앞서 보여준 것과 동일한 유형의 보고서를 작성하는 방법이라고 내기를 기꺼이합니다.

죄송합니다.이 외에도 미안합니다.

+0

감사합니다. 나는 그것을 들여다보고 내일 (내 컴퓨터에서 멀리 떨어져서) 그것을 시험해 보겠다. – MatthewSot

+1

사실, 그냥 시도하고 완벽하게 작동 :) client.GetBlame (target, out blame); 컬렉션에 SvnBlameEventArgs 정확히 무슨 일이 있었는지 않았다. 다시 한번 감사드립니다 :) – MatthewSot