repo 명령으로 mirror repository 생성 후 repo sync 실패 할때

OS/linux 2023. 11. 30. 22:33
반응형

repo init -u ssh://.... --mirror 으로 mirror 저장소 생성후 업데이트 실패 발생하였고

❯ repo sync -cj8
Fetching: 100% (988/988), done in 8.358s
info: A new version of repo is available
warning: repo is not tracking a remote branch, so it will not receive updates
fatal: GitCommandError: git command failure
    Project: repo
    Args: reset --keep v2.39^0
    Stdout:
None
    Stderr:
error: Entry '.github/workflows/test-ci.yml' not uptodate. Cannot merge.

 

.repo/repo 업데이트로 에러 해결함

❯ cd .repo/repo   
❯ git pull  
remote: Finding sources: 100% (68/68)
remote: Total 68 (delta 41), reused 68 (delta 41)
Unpacking objects: 100% (68/68), 78.81 KiB | 568.00 KiB/s, done.
From https://gerrit.googlesource.com/git-repo
   aadd12c..9f0ef5d  main       -> origin/main
Updating 1e9f7b9..b99272c
반응형
:

repo mirror 만들기

OS/linux 2023. 9. 22. 11:40
반응형

mkdir mirror
cd mirror
repo init -u REPO_ADDR -b BRANCH --mirror
repo sync -c

 

mirror 참조
repo init -u REPO_ADDR -b BRANCH --reference=MIRROR_DIR

반응형
:

c++ const 함수와 mutable

프로그래밍/c,c++ 2023. 7. 12. 00:07
반응형

const 함수는 값 변경을 막는데 mutable 키워드를 사용하면 값 변경이 가능하다.

의도적으로 값 변경을 막는 함수에서 왜 mutable이 필요할까?

 

함수 매개변수로 전달되는 변수에 대한 const는 그 값 자체 변경을 막아 주어 안전한 사용이 가능 하다.

함수에서 멤버 변수 값을 변경하지 않는 것을 보장 할때 const 키워드를 함수 선언에 붙인다.

const 함수 여러 예외 상황을 발생 시킨다.

 

1. 같은 const 함수 외 함수 호출을 할수 없다.

2. 멤버 변수 값을 변경 할수 없다.(전역 변수 변경은 가능하다)

    이 경우는 대부분 원하는 상황이다.

내가 개발 중인 클래스 멤버 함수에 const를 설정했을 경우에는 이슈가 있을때 맞춰서 수정이 가능하다.

const로 설정하는게 힘들 경우 지워서라도 해결을 할수 있다.

 

문제는 수정 불가능한 라이브러리를 사용하는데 const 함수를 재정의 해야 할 경우 발생한다.

Aa 클래스가 라이브러리 클래스 일 경우 Ba는 const 함수를 정의 해야만 한다.

Ba 클래스에서 멤버 변수값 변경이 필요할 경우 const를 지울수도, const 가 없는 함수를 호출 할수도 없다.

이때 멤버 번수에 mutable를 지정하여 사용하면 멤버 변수 값 변경이 가능해진다.

일반적으로 멤버 변수 값을 바꾸고 싶지 않을때 const를 사용하기 때문에 mutable 사용이 어색한 면도 있다.

만약 printTest 함수가 멀티 스레드 환경에서 동작 하고 mutex로 싱크를 맞춰야 한다면 어떻게 해야 할까?

void std::mutex::lock(); 함수는 const 함수가 아니고, 그래서 printTest에서 사용 할수 없다.

"mutable std::mutex mMutex;" 같이 mutable 을 사용하면 const 함수에서도 lock 이 가능해 진다.

mutable 은 이런 경우 처럼 로직적으로 필요하지만 const로 사용 불가능해진 상황을 위해 필요한 기능으로 보여진다.

반응형
: