2014-10-03 9 views
1

'권한이 거부'나는 명령을 사용하여 내 REPO 체중을 줄이는 것을 시도 할 때 : 내 콘솔에서 출력을 얻을힘내 필터 분기를 사용하여 역사를 다시

git filter-branch --force --tree-filter 'rm -rf `/Volumes/RamDisk/FF/large_files.txt | cut -d " " -f 2` ' --prune-empty master 

가 :

Rewrite 072caf825338a50130903528862caa12cebd1c87 (1/3214)/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-filter-branch: line 318: /Volumes/RamDisk/FF/large_files.txt: Permission denied 
Rewrite 2e7c35b1dd73b2b2ceb010a3cd98ad6906b0716e (2/3214)/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-filter-branch: line 318: /Volumes/RamDisk/FF/large_files.txt: Permission denied... 

large_files.txt입니다 제거 할 파일 목록이있는 텍스트 파일, 나는 그것을 소유하고 있으며 모든 사용 권한을 가지고 있습니다.

-rwxrwxrwx 1 luka staff 6983 3 Oct 23:00 large_files.txt 

.git-rewrite는 repo (삭제) 및 강제 플래그가 도움이되지 않습니까?

이 사용 권한에 대한 정확한 사용 권한은 무엇입니까? 파일 시스템 권한, Git 원격 권한 또는 기타? 그것은 내 repo입니다, 나는 sudo로 시도하고 그것에 아무런 도움이되지 않습니다. BTW : large_files.txt는 제거 할 파일 목록이있는 텍스트 파일 일뿐입니다.

여기서 내가 누락 된 부분을 찾아 낼 수 있습니까?

+0

strace와 동일한 기능을 알지 못합니다. 무엇이 잘못되었는지 정확히 보여 주어야합니다. – jthill

답변

1

large_files.txt을 실행하려고합니다 (--tree-filter에 대한 인수에서 ` 문자 내부에있는 내용을 확인하십시오). 셸은 실행 파일이 아닌 파일을 실행하려고 할 때 "권한이 거부되었습니다"라는 메시지를 혼동스럽게 표시합니다 (사용자가 낙관적으로 권한을 a+x으로 설정 한 경우에도 마찬가지 임). 어딘가에 cat을 가지고있을 수도 있습니다.

덧붙여서 xargs을 사용하는 것이 더 안전합니다. 인수를 rm으로 확장하는 것보다 안전합니다. 예를 들어,

cut -d " " -f 2 /Volumes/RamDisk/FF/large_files.txt | xargs rm -rf