SVN을 Git으로 마이그레이션 할 때 svn.authorsfile로 설정하는 파일을 만드는 방법

5355 단어 svnGit
  • 환경
  • Windows10 64bit
  • 명령을 사용하는 것은 Git Bash for Windows


  • 만들고 싶은 것은 SVN과 Git의 사용자 정보 매핑 파일입니다.



    ubversion 에서는 커밋한 사람 모두가 시스템상에 유저를 가지고 있어 그것이 커밋 정보로서 기록됩니다. 예를 들어 앞의 절의 샘플에서 말하면 schacon 이 그래서 blame 의 출력이나 git svn log 의 출력에 포함되어 있습니다. 이것을 Git 작성자 데이터로 성공적으로 매핑하려면 Subversion 사용자와 Git 작성자 간의 매핑이 필요합니다.
    Git - Git으로 마이그레이션

    만들고 싶은 것은 이런 파일
    schacon = Scott Chacon <[email protected]>
    selse = Someo Nelse <[email protected]>
    

    1.SVN 명령 설치


  • 참고 : TortoiseSVN을 이미 설치했을 때 명령 줄 도구를 얻고 설정하는 방법 - Qiita

  • 사이트에서 Apache Subversion command line tools 다운로드
  • 다운로드 한 .zip을 압축 해제하여 모든 디렉토리에 저장합니다.
  • .bash_profile 에 PATH를 통해서
  • $ cat ~/.bash_profile
    SVN_PATH="C:\任意のディレクトリ\Apache-Subversion-1.11.1\bin"
    export PATH=$PHP_PATH:$PATH:$SVN_PATH
    
    # .bash_profileを反映する
    $ source ~/.bash_profile
    
    # 確認する
    $ svn --version
    svn, version 1.11.1 (r1850623)
       compiled Feb  1 2019, 13:37:32 on x86/x86_64-microsoft-windows6.1.7601
    
    Copyright (C) 2019 The Apache Software Foundation.
    This software consists of contributions made by many people;
    see the NOTICE file for more information.
    Subversion is open source software, see http://subversion.apache.org/
    
    The following repository access (RA) modules are available:
    
    * ra_svn : Module for accessing a repository using the svn network protocol.
      - handles 'svn' scheme
    * ra_local : Module for accessing a repository on local disk.
      - handles 'file' scheme
    * ra_serf : Module for accessing a repository via WebDAV protocol using serf.
      - using serf 1.3.9 (compiled with 1.3.9)
      - handles 'http' scheme
      - handles 'https' scheme
    
    The following authentication credential caches are available:
    
    * Wincrypt cache in C:\Users\ponsuke\AppData\Roaming\Subversion
    

    2. 이력 정보를 가공하여


  • 참고 : 현장이 Subversion으로 힘들게 당신에게… 자신만 몰래 Git로 개발하는 방법
  • $ svn log --xml https://{SVNのパス} | grep "<author" | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = $1 <$1\@example.jp>/g' > users.txt
    

    먼저 로그를 XML 형식으로 출력합니다. 그 중에서 작성자를 찾아 중복을 생략하고 XML을 제거합니다 (조금 보면 알 수 있지만 이것은 grep, sort, 그리고 perl 같은 명령을 사용할 수있는 환경이 아니면 움직이지 않습니다). 이 출력을 users.txt로 리디렉션하고 Git 사용자 데이터를 작성합니다.
    Git - Git으로 마이그레이션

    3. 사용


    # クローンの時に使ったり
    $ git svn clone http://my-project.googlecode.com/svn/ --authors-file=users.txt --no-metadata -s my_project
    # 設定ファイルに設定したりして使う
    $ git config --global svn.authorsfile ~/.svnauthors
    

    좋은 웹페이지 즐겨찾기