SVN

- 특정 revision으로 복구 후 다시 서버로 커밋하기 -


svn을 사용하다보면 특정 revision으로 롤백하여 복구해야 하는 경우가 생기는데, revision으로 돌아가는 방법은 많다. 

 

update to revision, switch, ... 등 여러 방법들이 존재하는데, 혼자 svn을 사용하는거면 상관 없지만 여러 사람이 svn을 사용하게 되면 저 방법들은 로컬에서만 적용되기 때문에 svn 서버에는 적용되지 않아 update할 경우 다시 원상복구된다.

 

그래서 서버의 특정 revision의 상태로 다시 커밋을 하고 싶었으나 위 방법들로 롤백을 시킨 뒤 커밋을 눌러보면 커밋대상에 아무것도 뜨지 않는다.

 

이제 작업 내용을 롤백하고 다시 커밋하는 방법에 대해 알아보자.


우선 tortoiseSVN을 대상으로 정리하는 글이기 때문에 tortoiseSVN기반으로 설명한다.

복구하고자 하는 곳으로 가서 [마우스 우클릭]- [Merge] 를 클릭해주자.

 


그러면 아래와 같은 창이 나올텐데

 Merge a range of revisions를 선택 후 [Next]를 눌러주자


다음 화면에서 svn 경로는 자동으로 잡히니

specific range를 선택 후 [Show log] 버튼을 클릭해주자.


다음 svn log 화면에서

롤백을 원하는 버전들을 선택해주면 된다.

shift 나 ctrl 버튼을 눌러가며 여러개 선택이 가능하다.

 

각 revision에 대해서만 롤백시키는거라

아래 화면에서 1712까지 전부 롤백 시키고자 한다면 1728 ~ 1712까지 전부 선택해 주어야한다.


선택이 완료되었으면 아래와 같이 revision들이 나열될텐데

그 아래 Reverse merge를 선택한 후 [Next] 버튼을 클릭하자.


그리고 마지막 화면으로 넘어오는데

Ignore ancestry를 선택해도되고 안해도된다.

빠른 작업을 위해 선택해주는것도 좋다.

그리고 [Merge]버튼을 클릭해주자.


Merge버튼을 눌러주었다면 이제 해당 revision들이 롤백되면서 막 로그가 올라올텐데

완료가 되었다면

 

이제 [마우스 우클릭] - [commit] 을 눌러보면 방금 복구한것들을 commit할 수 있을것이다.

 

만약 작업 도중에 충돌이 나거나 그러면

revert 기능을 사용해서 다 제거해주고 충돌 원인을 해결한 뒤 본문 작업을 다시 실행해주자.

반응형

깃이라는것을 써본적도 없고 들어보기만해서 이 참에 하나씩 배워가고자 한다.

여기저기 찾아봐도 모두 명령어 치는 것들이 나와 혼란스러워 깃허브부터 시작해보도록 하자.

(이때까지만 해도 깃과 깃허브가 같은것인줄 알았는데 아니더라;)

 

우선 깃허브(github.com/)에 접속하여 로그인을 하게되면 아래와 같은 화면이 나오는데

역시 모든게 영어로 되어있어 참 난감하다.

 

제목과 마찬가지로 GitHub Gides가 존재하는데 화면 중앙에 [Read the guide] 라는 버튼이 보여 그걸 클릭하고 들어가보자. (이 게시글의 내용은 해당 가이드 내용을 토대로 정리한 것이다.)



GitHub Guides(guides.github.com/activities/hello-world/) 에 접속해보면 아래와 같은 화면이 나온다.

개발자들에게 익숙한 "Hello World"와 함께 우리를 반겨준다.



GitHub Gides 에서 우리가 배울 내용은 다음과 같이 안내한다.

  • 저장소(Repository)생성사용방법
  • 브랜치(branch)시작관리방법
  • 파일을 수정하고 깃허브에 커밋(Commits)하여 푸시(Push)방법
  • 풀(Pull) 요청병합방법

What is GitHub? - 깃허브란 무엇일까?

깃허브는 버전 관리와 협업을 위한 코드 호스팅 플랫폼이다.깃허브를 사용하면 다른사람들과 어디서든 프로젝트 작업을 할 수 있다.

 

이 튜토리얼은 저장소(repositories), 브랜치(branches), 커밋(commits), 풀 요청(Pull Requests) 같은 깃허브의 필수적인 것들을 가르치며, 일련의 깃허브 작업흐름을 배울 것이다.


Step 1. 저장소(Repository) 생성하기

보통 하나의 저장소는 하나의 프로젝트를 만들기위해 사용된다.

저장소는 폴더와 파일, 이미지, 영상, 스프레드시트, 데이터셋 등의 프로젝트에서 필요한 어떤 것이든 저장할 수 있으며,

아이디어나 리소스, 다른 사람들과 공유하거나 토론하는 것들도 저장할 수 있다.

 

이제 서론이 길었으니 본격적으로 하나씩 알아보자.

 

1. 오른쪽 상단에 있는 [+] 버튼을 클릭하고 "New repository"를 선택한다.



그럼 이제 등록 화면으로 넘어 왔을텐데 이어서 진행해보자.

 

2. 저장소 명(Repository name)에 "hello-world"라는 이름을 주고(그냥 아무거나 원하는 이름을 주면 된다.),

간단하게 저장소에 대한 설명을 넣는다.(설명(Description)은 옵션이라 그냥 넘어가도 된다.)

 

3. 그리고 Initialize this repository with: 란에서 [Add a README file] 을 선택해주자.

 

4. 마지막으로 기타 개인적인 설정이 끝났으면 [Create repository] 버튼을 클릭하여 저장소를 생성한다.



아래쪽 저장소 생성 버튼 위에 "This will set main as the default branch..." 라는게 생기는데 위에 세개중 하나라도 선택하면 뜨는 내용이며 "main"이라는 브랜치가 기본적으로 하나 만들어진다는걸 의미하는거라 나중에보면 생성 되어 있을것이다.

 

이제 드디어 첫 저장소인 "hello-world"를 아래 화면처럼 생성하였다!



Step 2. 브랜치(Branch) 생성하기

브랜칭(Branching)하나의 저장소에서 서로 다른 버전을 동시에 작업하는 방법이다.

 

기본적으로 저장소는 "main"이라는 이름의 메인 브랜치를 가진다.우리는 "main"외의 다른 브랜치를 만들어서 "main" 브랜치에 커밋하기 전에 수정하고 테스트한다.

 

"main" 외의 브랜치가 만들어지면 그 순간에 복사본 혹은 스냅샷이 생성된다.당신이 새로운 브랜치에서 작업하는 동안 누군가 "main" 브랜치를 수정한다면 당신은 그 업데이트들을 풀(pull)받을 수 있다.

 

다음의 다이어그램에서 보여주는 내용은 다음과 같다.

  • main 브랜치
  • feature 라는 새로운 브랜치
  • feature 브랜치가 main 브랜치로 병합(merge)되기 전까지의 과정


깃허브에서 개발자, 작가, 디자이너들은 브랜치를 사용하여 버그 수정 및 특정 작업을 main브랜치로부터 분리하고, 수정이 완료되면 작업된 브랜치를 main 브랜치로 병합한다.

 

이제 브랜치를 생성하는 방법에 대해 알아보자.

지금 설명할 방법외에도 다른 방법이 있으니 그건 나중에 설명하도록 하겠다.

 

1. 앞서 생성한 저장소 왼쪽 상단에 "main" 이라고 쓰여있는 브랜치를 선택한다. 그러면 현재 존재하는 브랜치 목록과 입력창이 나올것이다.



2. 입력창에 "readme-edits"을 입력하고 아래에 [Create branch:readme-edits]를 클릭한다.



생성하고 나면 "main"으로 되어있는 부분이 생성한 브랜치로 바껴있을것이며, 작업에 따라 브랜치를 바꿔가면서 작업할 수 있다.

이제 여기까지 됐으면 우리는 브랜치가 "main" 과 "readme-edits" 두개가 되었을 것이다.


Step 3. 수정하고 커밋(Commit) 하기

svn이나 기타 형상관리 툴을 사용해봤으면 알겠지만 자체적으로 수정한것을 서버로 저장하는것을 보통 커밋(commit)이라 한다. 커밋할때는 코멘트 즉 커밋 메시지를 입력할 수 있는데 생략가능하지만 무엇을 커밋했는지 입력해주면 좋다.

 

1. 브랜치를 "readme-edits"로 두고 처음 생성할때 만든 README.md 파일클릭한다.



2. 우측에 파일 수정하기(연필 아이콘)클릭한다.



3. 파일 내용을 수정한다. (그냥 아무 내용이나 입력하자.)



4. 커밋 코멘트(메시지)를 작성하고, [Commit changes]클릭한다.



사실 여기서 눈치챈 사람도 있겠지만 앞서 STEP 2 에서처럼 브랜치를 생성하지 않아도 파일을 수정하고 나서 브랜치를 새로 만들어 넣을 수 있다.

아래 "Create a new branch for this commit..." 이라는걸 체크해보면 

아래와 같이 브랜치 이름을 입력할 수 있는 창이 나오고 버튼은 [Propose changes] 로 바뀐다.



이제 다시 본문으로 돌아와 위에서 수정한 내용은 "readme-edits" 브랜치에 적용되었다.그럼 STEP 2 에서 설명한것처럼 "readme-edits" 브랜치와 "main" 브랜치는 서로 다른 내용을 가지게 되었다.


Step 4. 풀(Pull) 요청하기

기본 브랜치인 "main" 외의 브랜치에서 수정된 내용이 생겼으므로 이제 풀 요청(Pull Request)을 할 수 있다.

 

풀 요청은 깃허브에서 협업의 핵심이다. 당신은 풀 요청을 하여 당신이 수정한 내용을 제안하고, 다른 사람의 리뷰를 요청하여 다른 사람들이 수정된 내용을 그들의 브랜치에 병합(merge)하도록 한다.

풀 요청은 두 브랜치로부터 다른점을 보여주며 수정된 것추가된 것 그리고 빠진것들이 녹색빨간색으로 보여진다.

 

커밋을 하면 바로 풀 요청을 열어서 토의를 시작할 수 있다.

깃허브의 멘션시스템을 사용하여, 당신은 특정 사람이나 팀에게 피드백을 요청할 수 있다.

 

1. [Pull Request] 탭을 선택하고, [New pull request] 버튼을 클릭한다.



2. 하단에 Example comparisons 에 있는 "readme-edits" 를 선택하거나, 상단에 compare 대상을 "readme-edits" 브랜치로 변경해주자.



3. 수정된 내용을 확인할 수 있다. 추가된 것은 녹색으로 표시되고, 빠진 것은 빨간색으로 표시된다. 수정된 것을 전부 확인했다면 [Create pull request]를 클릭한다.



4. 풀 요청에 대한 제목과 간단한 설명을 작성하고, [Create pull request] 버튼을 클릭한다.



Step 5. 병합(Merge) 하기

이제 길고 길었던 튜토리얼의 마지막 단계인 병합에 대해 알아보자.

수정한 "readme-edits" 브랜치를 "main" 브랜치로 병합한다.

 

1. Step 4 가 완료되면 아래 화면으로 이동되는데 여기서 [Merge pull request]를 클릭한다.



2. [Confirm merge] 버튼을 클릭한다.



3. 이제 병합이 완료되어 화면이 변화하는데 "readme-edits" 브랜치는 필요가 없으므로 [Delete branch] 버튼을 클릭하여 제거해 준다.



이렇게 이제 깃허브 내에서도 제공해주던 튜토리얼이 끝났으며 기본적인 작업 흐름에 대해 익혔다고 볼 수 있다.

좀더 상세한 가이드가 존재하는거 같은데 그건 차차 알아가보도록 하자.

 

반응형

'형상관리 > GIT' 카테고리의 다른 글

[GitHub] 깃허브 사용하기 - 튜토리얼(ft. GitHub Guides)  (0) 2021.04.10

레드마인에 등록된 일감의 설명을 바꾸고싶은데

아무리 찾아도 어떻게 바꾸는지 모르겠다.

 

이번에 CKEditor를 적용하면서

기존에 등록된 모든 일감들의 줄바꿈이 사라져버렸다!

이유는 모르겠지만...



그래서 다시 줄바꿈을 주려고 해당 내용을 수정하려 했다.

(내용은 따로 테스트일감을 만들어서 시도해보았다.)

 

당연히 해당 일감에서 편집을 눌러준다.

(이제보니 아래도 버튼이 있다..)



그런데 아무리 찾아도 바꾸는 입력창이 없다...

아래 큼지막한것은 덧글을 쓰는곳인데

내용 수정하는곳이 보이질 않는다.



알고보니 저기 떡하니

 

설명 부분에 편집버튼이 존재했다

설명 옆에 있는 편집 버튼을 눌러주자.



이 다음부터는 뭐 굳이 설명이 필요없이

저렇게 설명 부분에 입력창이 생겼다

기존 내가 입력한 내용 역시 보여주면서



내용을 수정하고

확인을 누르면 아래와같이

이미 등록된 일감의 내용이 수정된것을 확인할 수 있다.

 

바로 눈앞에 두고 못찾던 기능을 알고나니 참 허무하다...


 

반응형
  1. ranma 2020.03.26 17:59

    ㅋ 고마워요.. 한참 헤맬뻔 했네

  2. mong 2020.07.25 13:26

    저도 이걸 몰라서 기존 내용 수정을 못하고 자꾸 댓글 형태로 덧붙였네요 -_-);;
    님 덕에 알고 갑니다. 감사합니다

  3. 지나가는이 2021.02.05 13:19

    감사합니다. 저도 이걸 몰라서 댓글로 추가 했었어요.

CKEditor 를 설치하여 이미지 업로드를 하려했는데 기능이 돌아가질 않는다.

아무리 찾아봐도 해결방법이 없기에

CKFinder를 적용하면 CKEditor와 호환이 잘 된다 하지만

해당 플러그인은 "유료" 이므로

 

아쉽지만 무료 플러그인

Lightbox 2

플러그인을 설치하고자 한다.

 

https://www.redmine.org/plugins/redmine_lightbox2

우선 레드마인 홈페이지의 플러그인 다운받는 곳으로 들어가보자

 

그리고 레드마인 버전에 맞는 Lightbox Plugin을 클릭해주도록 하자

(나는 4.x 버전이기에 0.5 버전 실행)



그리고 소스 코드 파일을 다운로드 받자



아래 나와있는거와 같이 설치 방법은 정말 간단하다



다운로드 받은 파일을 우선 플러그인 폴더

C:\Bitnami\redmine-4.0.4-1\apps\redmine\htdocs\plugins

경로에 압축 풀어주도록 하자

(파일명은 해당 플러그인 버전을 지우고 이름만 나오게 해주자 혹시 모르니)



그리고나서 여타 플러그인과 마찬가지로

 

C:\Bitnami\redmine-4.0.4-1

경로에 있는 use_redmine.bat 를 실행하고

 

redmine Root 경로로 가서 다음 명령어를 실행해준다.

rake redmine:plugins:migrate RAILS_ENV=production

(보통 ROOT 경로란 C:\Bitnami\redmine-4.0.4-1\apps\redmine\htdocs 를 의미)



설치가 완료되었으면 레드마인을 재실행 시켜주고

이제 따로 적용해줄게 없는 참 편한 플러그인이다

 

이제 일감 작성에서 글을 작성해보면

아래와 같이 그림의 미리보기가 생성되어있는것을 볼 수 있고



해당 이미지를 클릭하면

아래와 같이 출력된다.

기존 이미지 파일에 비교하면 정말 편한 기능이 아닐수없다.


 

반응형

레드마인 플러그인 설치방법에 대해 알아보자

이번에 설치하게 될 플러그인은 CKEditor 플러그인이다.

 

https://github.com/a-ono/redmine_ckeditor

CKEditor 플러그인을 제공해주는 git 사이트에 들어가보자

 

그럼 하단에 Requirements 부분이 나올텐데

자신의 레드마인 버전에 맞는 CKEditor 버전을 받으면 된다.

(이번에 레드마인 4.x 버전을 사용중이라 1.2.2를 받고 진행해보자.)



친절하게도 그 바로 아래 Plugin installation and setup 이라고

설치 가이드가 있는데 따라해보자



우선

1. 해당 zip 파일을 plugins 경로에 압축을 풀라는 의미로 보인다.

아래와 같이 해당 경로에 풀어놓자



C:\Bitnami\redmine-4.0.4-1

경로에 있는 use_redmine.bat 를 실행하고

 

2. redmine Root 경로로 가서 다음 명령어를 실행해준다.

bundle install --without development test

(보통 ROOT 경로란 C:\Bitnami\redmine-4.0.4-1\apps\redmine\htdocs 를 의미)

 

그럼 아래과 같이 설치되는 화면을 볼 수 있다.



그다음은

3. 또 해당 명령어를 이어서 실행시켜주면 된다.

rake redmine:plugins:migrate RAILS_ENV=production

 

역시 뭔가 설치되는 느낌으로 뭔가가 나오며 실행이 끝난다.



이제 설치는 끝난것 같다.

4. 레드마인을 재실행 시켜준다

(서비스를 멈췄다가 다시 실행해주라는 의미다.)

 

그리고나서

5. 관리자로 로그인을 하고 관리 탭을 들어가준다.

[설정] - [일반]

을 보면 본문형식이 있는데 거기서 바꿔줄 수 있다.



이제 해당 플러그인의 기타 설정

[관리] - [플러그인]

에서 해당 플러그인의 설정탭을 들어가면 된다.



이제 생겨날 기타 에러들은 따로 해결하는 수밖에 없지만

무사히 설치했으니 다행이다...



추가적으로 버전 업그레이드와 uninstall 방법 역시 

해당 GitHub에 있으니 참고할 수 있다.

https://github.com/a-ono/redmine_ckeditor



충격적이게도 이미지 업로드가 안된다.

에러는

Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError

 

Processing by Rich::FilesController#create as */*
  Parameters: {"file"=>#, @original_filename="___820(1).png", @content_type="application/octet-stream", @headers=nil>, "authenticity_token"=>"uIc0hPMytmLO2ngUS5DqDUIJnrDps4mDyPK3baW0SQ8hAbUDSAat7vfX8JcldUAHykaXG/+Y9vJ2yDTCk8BCTQ==", "simplified_type"=>"image", "scoped"=>"true", "scope_type"=>"Project", "scope_id"=>"1", "qqfile"=>"___820(1).png"}
  Current user: gnhan (id=7)
[paperclip] Trying to link C:/Windows/Temp/thin-body20190801-622396-14zmvkd to C:/Windows/Temp/0c0f9d07e17cb0405e397e046b12a85a20190801-622396-w7ch8r.png
[paperclip] Link failed with File exists @ syserr_fail2_in - C:/Windows/Temp/0c0f9d07e17cb0405e397e046b12a85a20190801-622396-w7ch8r.png; copying link C:/Windows/Temp/thin-body20190801-622396-14zmvkd to C:/Windows/Temp/0c0f9d07e17cb0405e397e046b12a85a20190801-622396-w7ch8r.png
Command :: magick identify -format '%wx%h,%[exif:orientation]' "C:/Windows/Temp/0c0f9d07e17cb0405e397e046b12a85a20190801-622396-w7ch8r.png[0]" 2>NUL
[paperclip] An error was received while processing: #
Command :: magick identify -format '%wx%h,%[exif:orientation]' "C:/Windows/Temp/0c0f9d07e17cb0405e397e046b12a85a20190801-622396-w7ch8r.png[0]" 2>NUL
[paperclip] An error was received while processing: #

 

아무리 찾아도 해결할 수가 없어 대체제로 light-box2 라는 플러그인을 설치해보려 한다.

반응형
  1. 지나가다가 2019.10.23 09:29

    ImageMagick 을 설치해주시면 이미지 업로드가 가능해지십니다.
    이와 관련된 내용은
    검색해보면 레드마인 ChkEditor에 많이 연관되어 나와요.

    • BlogIcon 썸머워즈 2019.10.23 22:02 신고

      네 해결하려고 많이 찾아봤는데 대부분 그렇게 나오더라구요 그래도 해결을 못했던지라... 제 검색실력이 미흡하여... 나중에 시간 여유 생기면 다시 해결해보려구요 아무튼 감사합니다~ㅎㅎ

  2. Tiki 2021.05.11 21:35

    ImageMagick 7 Q16 Static 버전을 설치한 다음 아래 링크처럼 CKEditor 플러그인 설정을 변경해 주세요.

    https://github.com/a-ono/redmine_ckeditor/issues/289

    윈도우 설치 기준으로 보면 CKEditor 1.2.3은 ImageMagick 7 기준으로 세팅이 되어 있는데 Bitname Redmine 4.2.1 등은 ImageMagick 6을 기본적으로 사용하도록 되어 있고, 두 버전은 구동 명령어가 서로 달라서 이런 사단이 나는 것이더군요. CKEditor에서 이미지를 업로드할 때만 ImageMagick 7을 사용하도록 세팅하고, 나머지 과정은 ImageMagick 6을 사용하도록 하는 방법입니다.

    단, ImageMagick 7 Q16 DLL 버전을 설치하시면 안됩니다. Bitnami Stack에 지정된 DLL 경로가 우선되기 때문에 Imagemagick 7이 제대로 동작하지 않습니다.

레드마인 하다보니까 정말 에러가 많은거 같다.

이번에 새로운 플러그인 Ckeditor 를 설치하면서 발생한 에러이다.

 

ActionView::Template::Error (uninitialized constant RedmineCkeditorSetting)

 

테이블 없음 에러와 다르게 무슨 에러인지 전혀 모르겠다.



알고보면 참 간단한 에러이며 해결방법 역시 간단하다

 

오류의 원인은 해당 폴더를 호출하지 못한다는 점이다.

 

내가 받은 폴더의 이름

redmine_ckeditor-1.2.2

로 되어있었는데



혹시...나 해서 뒤에 전부 없애주고

redmine_ckeditor

로 바꿔주었다.



폴더 이름을 변경해주고

레드마인을 재실행 시켜주었더니

 

정말 잘 실행된다....

별 에러가 다있다.

반응형