2012-05-18 3 views
4

나는 fluentmigrator의 포크 인 guthub에 repository을 가지고 있습니다. 이것이 git에 대한 첫 번째 진출이었고 포크와 업스트림 저장소 사이의 공백 충돌을 해결할 수없는 상황에 처해있었습니다.gol에서 공백 문자 문제를 해결할 수 없습니다

저는 Windows 7에서 실행 중이며 msysgit 클라이언트를 사용하고 있습니다. 여기

$ git remote -v 
origin https://github.com/lscharen/fluentmigrator (fetch) 
origin https://github.com/lscharen/fluentmigrator (push) 
upstream  http://www.github.com/schambers/fluentmigrator (fetch) 
upstream  http://www.github.com/schambers/fluentmigrator (push) 

내 지역의 repo 내 github의의의 repo에 전류 링크 된 저장소이며, 이러한 파일 중 일부에

[email protected] /c/checkout/fluentmigrator (master) 
$ git diff --stat origin/master 

[email protected] /c/checkout/fluentmigrator (master) 
$ git diff --stat upstream/master 
src/FluentMigrator.Console/MigratorConsole.cs  | 563 ++++++++++---------- 
.../Initialization/IRunnerContext.cs    | 1 + 
.../Initialization/RunnerContext.cs    | 1 + 
src/FluentMigrator.Runner/MigrationLoader.cs  | 193 ++++---- 
src/FluentMigrator.Runner/MigrationRunner.cs  | 4 +- 
src/FluentMigrator.Runner/VersionLoader.cs   | 343 +++++++------ 
.../Versioning/VersionMigration.cs     | 221 +++++---- 
.../Unit/TestVersionTableMetaData.cs    | 105 ++-- 
.../Unit/VersionLoaderTests.cs      | 272 +++++----- 
.../Infrastructure/DefaultMigrationConventions.cs | 252 +++++----- 
.../Infrastructure/MigrationMetadata.cs   | 91 ++-- 
src/FluentMigrator/MigrationAttribute.cs   | 70 ++-- 
.../DefaultVersionTableMetaData.cs     | 84 ++-- 
.../VersionTableInfo/IVersionTableMetaData.cs  | 57 ++- 
14 files changed, 1182 insertions(+), 1075 deletions(-) 

변경은 순수 EOL 문제입니다 상류의 repo에 대한 약간의 변화가 있습니다. src/FluentMigrator.Console/MigratorConsole.cs의 diff를보고 공백을 무시하면

$ git diff --stat -w upstream/master src/FluentMigrator.Console/MigratorConsole.cs 
src/FluentMigrator.Console/MigratorConsole.cs | 13 ++++++++++++- 
1 files changed, 12 insertions(+), 1 deletions(-) 

나는 다양한 SO 답변에서 core.autocrlf 설정에 대한 조언을 따라 문제를 해결하려고 시도했지만, 아무것도 내 파일이 업데이트 된 상태에서 내 이름을 써 넣는 것 같다 내 origin에 대해 DIFF을 보여 주지만, upstream과 일치합니다.

다음은 내가 시도한 것입니다.

$ git rm --cached src/FluentMigrator.Console/MigratorConsole.cs 
rm 'src/FluentMigrator.Console/MigratorConsole.cs' 

$ git config core.autocrlf input 

$ git add src/FluentMigrator.Console/MigratorConsole.cs 

$ git diff --stat upstream/master src/FluentMigrator.Console/MigratorConsole.cs 
src/FluentMigrator.Console/MigratorConsole.cs | 563 +++++++++++++------------ 
1 files changed, 287 insertions(+), 276 deletions(-) 

core.autocrlf false을 설정하고 수동으로 DOS2UNIX

$ git config core.autocrlf false 

$ dos2unix src/FluentMigrator.Console/MigratorConsole.cs 

$ git diff --stat upstream/master src/FluentMigrator.Console/MigratorConsole.cs 
src/FluentMigrator.Console/MigratorConsole.cs | 17 ++++++++++++++--- 
1 files changed, 14 insertions(+), 3 deletions(-) 

닫기로 변환 this 대답에서 core.autocrlf input를 설정! 그러나 diff에 삽입 된 각 줄 끝에 ^M 문자가 매달려 있습니다 (예 : git config core.whitespace cr-at-eol 설정

+  public string Group;^M 

하지만 난 두려워의 diff 올바른 보이게했다가 내가 여전히 REPO에 호환되지 않는 공백 문자를 넣어됩니다이 파일을 커밋합니다.

풀 요청을 처리하기 위해 포크를 수정하려고합니다. 따라서이 문제를 해결하기위한 일반적인 조언을 보내 주시면 감사하겠습니다.

답변

1

내가하여 로컬 복제를 완전히 다시 것 :

  • git config --global core.autocrlf=false
  • 한마디로 git clone https://github.com/lscharen/fluentmigrator

, 아니 EOL 변환이 처음부터 자리를 차지하지 말았어야, 당신은 dos2unix되었습니다해야 지금 당장 모든 파일 가져와.

관련 문제