질문/조언질답게시판

우선, 무슨 상황이냐면

 

ckeditor를 커스텀 빌드로 관리하기 위해서, common/js/plugins/ckeditor/ckeditor 폴더를 아예 통째로 삭제한 다음에 이 상태에서 한번 커밋시키고, 그러고 나서 .git/info/exclude 파일에 common/js/plugins/ckeditor/ 를 등록시킨 다음, 커스텀 빌드를 업로드해서 적용시켰습니다.

 

git status를 해 보면 nothing to commit, working directory clean 이라고 뜨는 상태이구요.

 

그런데, 최근에 라이믹스 develop 브랜치 적용시에 모바일에서 소셜로그인이 안 되는 증상 때문에 업데이트를 미뤄 두고 있었는데

 

오늘 (로그인이 되나 안 되나) 실험해보기 위해서 git fetch origin develop:develop로 가져온 다음 git merge develop 해봤는데

 

다음과 같은 오류가 뜨네요

 

error: The following untracked working tree files would be overwritten by merge:
    common/js/plugins/ckeditor/ckeditor/plugins/colordialog/dialogs/colordialog.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/dialog.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/dialog_ie.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/dialog_ie8.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/dialog_iequirks.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/editor.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/editor_gecko.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/editor_ie.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/editor_ie8.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/editor_iequirks.css
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/icons.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/icons_hidpi.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/arrow.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/close.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/close.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/lock.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/hidpi/refresh.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/lock-open.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/lock.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/refresh.png
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/images/spinner.gif
    common/js/plugins/ckeditor/ckeditor/skins/moono-lisa/readme.md
Please move or remove them before you can merge.
Aborting
 

분명히 exclude에 common/js/plugins/ckeditor/ 를 포함시켰는데 왜 이게 뜨는지 모르겠네요.

 

혹시 몰라서 .gitignore에 넣어 봤는데도 마찬가지구요

 

글구 더 이상한건 ckeditor 이하의 모든 파일이 다 나오는 것도 아니고, 딱 저 파일들만 나오네요.

 

지금 원하는건, merge 를 할 때 common/js/plugins/ckeditor/ 이하의 파일들은 (제가 따로 수정한 내용 그대로) 절대 건드리지 않고, 다른 변경사항들만 적용하고 싶은데요

 

어떻게 해야 할까요?

  • profile
    git diff
    을 쳐보시면 바뀐 내역이 보일거같아요.
    해당 바뀐내역들때문에 서로 충돌한다고 알려주는거같아요.
  • profile ?
    물론 뭐때문에 저 문구가 나오는지는 알고 있습니다. 본문에 말씀드린대로 지금 라이믹스 develop 브랜치에서 ck에디터 업데이트된거랑 제가 따로 업데이트한거랑 충돌하는건데, 이걸 막기 위해서 exclude나 gitignore에 넣어줬는데 왜 저렇게 나오는건지 모르겠네요.
  • ? profile
    깃이그노어에 갑자기 추가한다고 해도..기존의 캐시가 있는상황이라면 바로 적용이 어렵습니다.(커밋해도 계속 적용됩니다.)

    게다가 말씀하신 ck에디터 업데이트된것과 기븐님이 수정하신 파일이 동일하게 같은파일에서 오류난다면 더욱 그렇구요.

    말씀하신것과 같이 해당 부분의 적용사항이 서로 연관된 코드의 위치나 그런부분에서 오류날 수 있어서 해당 부분의 머지를 잘 못하게 되는겁니다.

    이럴때는 직접 해결하거나 머지를 못하는거죠..
  • profile ?
    무슨 말씀인지 잘 이해가 안되네요..;; 그럼 결론적으로 어떻게 해결해야 하나요?

    conflict 발생시에 해결하는 방법은 알겠는데, 이건 untracked 파일에서 충돌난다는 거라 어떻게 해야 할지 모르겠네요.

    구글링을 해 봐도 저같은 경우는 안 나오네요. 다들 그냥 저장소에 있는 파일을 그대로 받아오고 싶어하는 내용들인데, 저는 그게 아니라 common/js/plugins/ckeditor/ckeditor 이하는 제가 따로 수정해서 쓰기 때문에 아예 안 받아오고 싶거든요.
  • profile

    .gitignore와 exclude는 저장소에 없는 파일(서드파티 자료)이 커밋되지 않도록 하는 용도이지, 저장소에 있는 파일을 무시하도록 하지는 못합니다.

     

    일단 git reset --hard HEAD 명령으로 merge를 시도하기 전의 상태로 되돌린 후 (주의: 마지막 커밋 이후 변경된 파일은 모두 되돌아갑니다!) 원하시는 상태의 ckeditor 폴더를 다른 곳에 백업해 두세요.

     

    merge를 시도하다가 conflict가 발생하면 백업해 두었던 ckeditor 폴더로 덮어씌운 후, git add -A common/js/plugins/ckeditor 명령으로 변경된 파일을 모두 추가하고 git commit (커밋 메시지 필요없음) 명령으로 커밋하시면 merge가 완료됩니다.

     

    한쪽에서 수정된 파일이 다른 쪽에서 삭제되면 git이 헷갈려합니다. 폴더를 통째로 삭제하지 말고 그냥 둔 상태에서 원하시는 상태로 만든 후 커밋하여 쓰시면 이후에 merge할 때도 conflict가 발생할 가능성이 훨씬 낮아집니다. CKEditor 새 버전이 나오면 라이믹스에도 종종 업데이트할 테니, 매번 conflict가 발생한다면 귀찮잖아요?

  • profile ?

    캡처.PNG

     

    지금 저렇게 딱 필요한 플러그인만 추가해서 쓰는 중인데, 말씀하신 대로 하면 나머지 플러그인들도 죄다 추가되지 않나요?

     

    그렇다면, 일단 저 폴더 다 지우고 라이믹스 저장소의 파일로 덮어씌운 다음에 다시 그거 다 지우고 제 파일로 덮어씌워야 할까요?

     

    아 이거 어렵네요. 그렇게 해도 나중에 라이믹스쪽에서 ckeditor 또 수정되면 또 충돌할텐데..

  • ? profile
    ckeditor 폴더를 통째 지우지 말고 불필요한 플러그인만 지운 후 커밋하세요. 그러면 나중에 또 충돌이 일어나더라도 충돌이 일어난 플러그인만 다시 지우고 커밋하면 됩니다. ckeditor가 업데이트되더라도 플러그인은 예전 그대로인 경우가 많으니, ckeditor를 통째 지우는 것보다 훨씬 간단한 작업이지요.
  • profile ?
    일단은 해결했는데, 어떻게 했냐면 우선 exclude에 해당 경로 추가한거 지우고, git merge develop 한 다음 (일부 충돌난거 수정하고 나서) ckeditor 폴더를 다 삭제하고, 제가 커스텀한 파일들을 다시 업로드한 다음에 git add -A로 모두 추가시키고 커밋했습니다.

    근데 이거 아마 나중에 ckeditor 또 업데이트되면 또 충돌할 거 같은데.. 이건 뭐 어떻게 할 수가 없나보네요



    글구 잠깐 실험해보니 이제 모바일에서 소셜로그인으로 로그인이 잘 되는 것으로 보여서 사용이 가능할 것 같네요. 이 글과 관련은 없는 내용이지만 질문드립니다.

    전에도 같은 질문 드렸는데, SSL 전용 세션 사용시에 누가 img src 태그로 비SSL(http://) 이미지를 삽입해서 브라우저에 보안경고가 나오게 만들 경우 원래 로그인이 풀려야 정상인가요? 네이버 메인화면에서 아무 이미지나(http://) 복사한 다음에 붙여넣기하고 글을 써보니까, 브라우저에 보안경고는 뜨는데 로그아웃은 안 되네요. (세션 보안키는 사용안함 설정했습니다)

    그리고 회원정보창에 "로그인 관리" 가 정확하게 뭘 하는 것인지 아직도 잘 이해가 안 되네요. 지금 보니까 어떤 경우는 로그인을 했는데도 기록이 안 나타나는 반면 어떤 경우는 나타나고, 또 어떤 경우는 목록을 삭제한 적도 없는데 들어가보면 이전 목록이 다 삭제되어 있고 어떤 경우는 남아있던데 그 원인을 모르겠네요.

    (또한 "최근 방문"도 전혀 업데이트가 안 되네요. 그냥 새로 로그인할 때마다 계속 로그인 이력이 쌓여가기만 하네요)
  • ? profile
    단지 비SSL 이미지를 로딩했다는 이유만으로 로그인이 풀리는 것은 정상이 아닙니다.

    단, SSL 전용 세션을 사용하면 비SSL 페이지 방문시 로그인이 풀릴 수 있습니다. 이 옵션을 안전하게 사용하기 위해서는 비SSL 페이지 방문 시도시 서버단에서 (nginx 설정 또는 .htaccess 파일을 통해) 즉시 SSL로 리다이렉션해야 합니다. 옵션 아래의 설명에 적혀 있듯이 애드온 등을 사용해서 리다이렉트하면 안됩니다. 비SSL 환경에서 라이믹스를 실행하려고 시도하는 것 자체를 보안상의 위협으로 취급하거든요.

    "로그인 관리"는 이름에 다소 어폐가 있는데, "자동 로그인 관리"가 맞습니다.

    자동로그인 사용시 최근 로그인 날짜가 갱신되지 않는 증상은 아직 고쳐지지 않았습니다.
  • profile ?
    혹시 비SSL 페이지라는게 "http://사이트주소" 를 말씀하시는 건가요?

    "https://사이트주소/게시물주소" 로 들어갔는데 해당 게시물에 비SSL 이미지가 삽입되어 있는 경우에는 로그아웃 안 되는게 맞나요?
  • ? profile
    네, 이미지만으로는 로그인 상태에 영향을 줄 수 없습니다.

    한 가지 예외가 있다면 이미지 파일을 다운로드하게 과정에서 라이믹스가 실행되는 경우인데요... http://사이트주소/index.php?act=procFileDownload&..... 이런 식의 주소로 링크된 이미지라면 문제가 생길 수도 있습니다.