2011-01-18 2 views
0

안녕하세요 내 응용 프로그램에서 다음과 같은 흐름을 구현합니다. (의사 코드에서와 같이)명령 줄은 서버

LatestRevision = IsMyFileLatest에서 하나 개의 존재의 오래된 사본입니다(); // svn을 검사하고 파일의 작업 사본을 비교해야하는 몇 가지 메소드.

if (! LatestRevision) //this flag compares with the Head Revision 
{ 
    //Display error message..The file is not the latest copy 
} 
else 
{ 
    // Commit the file changes in the subversion server 
    FileCommit(); //commits the file(whichever file im working to the server)  
} 

이 경우 명령 줄에서 실행되는 다음 svn 명령에 대한 도움이 필요합니다.

  1. 현재 파일이 최신 파일인지 확인하려면?
  2. 디렉토리에서 수정 된 파일 만 커밋합니다.

Subversion 명령 줄과 관련된 도움이나 조언을 보내 주시면 감사하겠습니다.

감사와 안부

+0

"최신 버전"이란 무엇입니까? 어디에? 어떤 맥락에서? 자세한 내용이 필요합니다 –

+1

분명히 전복이 모든 것을 당신을 위해서합니까? 그건 정말 그 방식입니다. –

+0

깃발 최신 버전은 "최신 개정"을 의미합니다 ... 죄송합니다.이 부분을 다시 편집 할 예정입니다. 커밋에 대해서 저장소에 다시 커밋하는 것에 대해이 부분은 알고 있습니다 –

답변

1

VisualSVN 사이트는 당신에게 좋은 출발점을 제공한다 here 위치한 서브 버전에 '책', 호스트 - 나는 정확한 모르겠어요 내 머리 위로 떨어져 불구을

SVN Reference :

명령에 대한 참조입니다 장 있습니다 ... 당신이 사용해야 할 것입니다 명령.

설명하면 충분히 도움이 될 svn info이 있습니다.

편집 : 한편

, 당신의 변경된 제목을 읽은 후, svn status 당신이 찾고있는 무슨을 할 수있다?

편집 2 :

이 이 질문에 사용되는 프로그래밍 언어가 명시 적으로 언급되지 않으며, 사실은 우리가 죽은 말을 상회의에 추측을 비유 할 수와 같은 일반적인 구문의 주어진 여기 괜찮아요

(윈도우 세계에서) 우주의 작은 조각 VBScript를 ...

Dim shell, svn 
Set shell = CreateObject("WScript.Shell") 
Set svn = shell.Exec("svn info [working_copy_path]") 

WScript.Sleep 1000 

Dim revision 
Do While svn.StdOut.AtEndOfStream <> True 
    revision = svn.StdOut.ReadLine 
    If left(revision, 8) = "Revision" Then 
     Exit Do 
End If 
Loop 

WScript.Echo revision 

나는 활용 Sleep 메커니즘의 자랑 거리가 멀다 해요,하지만 다행히도 내가 책임 (많은)로 사람이 아니에요 여기에서 나는 깨끗한 방법으로 자신을 만들고, 이것을 예제로 넣어 두겠다.

+0

svn 상태가 없으면 수정 된 파일 목록 만 반환됩니다. 나는 (2 단계 접근법이라 할지라도) 무언가를 필요로하고, 작업 사본을 수정하고 수정 된 오래된 개정판을 확인해야한다. SVN은 디폴트로 충돌을 던졌습니다. 내 응용 프로그램 수준에서이 시나리오를 처리하는 것이 궁금했습니다. –

+1

안녕하세요 ... 실제로 "svn info"는 나에게 유용하게 보입니다. 결과에서 "Revision"열 정보를 어떻게 추출 할 수 있습니까? –

+0

@ 이 - 나 : 어떤 언어 나 환경에서 일하는지 알지 못한다면 어떻게 문자열을 추출 할 수 있는지 조언 할 수 있습니까? –

관련 문제