[완료] svn 작업을 실행하려고 하면 항상 lock이 걸렸다고 나옵니다.

bakdorazi의 이미지

안녕하세요

1. svn 사용자는 scyhoi(staff그룹),root 둘 뿐입니다.

2. root로 로긴해서 svn 명령어를 실행하면 대부분 permission deny는 안걸리지만 어떤 명령에서는 걸리기도합니다.

예)# svn update
D test1.c
A test1.c
svn: Filed to add file 'hello.c':object of the same name already exists

정말 왜 이런지 모르겠습니다. 이런 경우가 svn update를 제외하고 종종 있습니다.
예를 들어 svn commit를 하면 잘나가다가 뒤에 에러 메시지가 뜹니다.

3. sychoi로 로긴해서 svn 명령어를 실행하면 scn checkout을 제외하고는 모두 svn lock 걸렸다는 메시지와 permission deny가 뜹니다.
그래서 root로 로긴해서 sychoi의 lock을 풀기위해서 svn cleanup을 하면 permission deny는 걸리지 않지만 sychoi의 lock이 풀리지 않습니다.
아래를 보시면 대강 이해가 가실 겁니다.

----------------------------------------------------------------------

Sun Microsystems Inc. SunOS 5.10 Generic January 2005

# cd /TEST1/TEST1 (<= root로 로긴한 상황)

# ls
TEST TEST2 core svn-commit.tmp test1.c
TEST1 TEST3 hello.c test1

# ls -al
total 14806
drwxrwxrwx 8 root root 512 Dec 9 16:59 .
drwxr-xr-x 4 root root 512 Dec 5 15:26 ..
drwxr-xr-x 6 root root 512 Dec 9 17:04 .svn
drwxr-xr-x 3 sychoi staff 512 Dec 9 17:14 TEST
drwxr-xr-x 8 root root 512 Dec 5 17:15 TEST1
drwxr-xr-x 6 sychoi staff 512 Dec 9 10:51 TEST2
drwxr-xr-x 6 sychoi staff 512 Dec 9 11:05 TEST3
-rw------- 1 sychoi staff 7556734 Dec 9 14:26 core
-rwxrwxrwx 1 root root 120 Dec 9 16:58 hello.c
-rw-r--r-- 1 root root 63 Dec 8 17:55 svn-commit.tmp
drwxr-xr-x 3 root root 512 Dec 5 17:09 test1
-rwxrwxrwx 1 root root 126 Dec 5 14:24 test1.c

# svn commit

# svn cleanup TEST1

# su - sychoi (<= sychoi로 로긴함)
Sun Microsystems Inc. SunOS 5.10 Generic January 2005

$ cd /TEST1/TEST1

$ ls -al
total 14806
drwxrwxrwx 8 root root 512 Dec 9 16:59 .
drwxr-xr-x 4 root root 512 Dec 5 15:26 ..
drwxr-xr-x 6 root root 512 Dec 10 10:09 .svn
drwxr-xr-x 3 sychoi staff 512 Dec 9 17:14 TEST
drwxr-xr-x 8 root root 512 Dec 5 17:15 TEST1
drwxr-xr-x 6 sychoi staff 512 Dec 9 10:51 TEST2
drwxr-xr-x 6 sychoi staff 512 Dec 9 11:05 TEST3
-rw------- 1 sychoi staff 7556734 Dec 9 14:26 core
-rwxrwxrwx 1 root root 120 Dec 9 16:58 hello.c
-rw-r--r-- 1 root root 63 Dec 8 17:55 svn-commit.tmp
drwxr-xr-x 3 root root 512 Dec 5 17:09 test1
-rwxrwxrwx 1 root root 126 Dec 5 14:24 test1.c

$ svn commit
svn: Can't open file '/TEST1/TEST1/.svn/lock': Permission denied

$ svn cleanup TEST1
svn: Can't open file 'TEST1/.svn/lock': Permission denied

$ svn cleanup TEST2
svn: Can't remove 'TEST2/branches/test-branch/trunk/.svn/tmp/text-base': Permission denied

$ svn update
svn: Can't open file '.svn/lock': Permission denied

-----------------------------------------------------------------------

<의문점>

1. root로 로긴하든 sychoi로 로긴하든 svn 명령을 내릴때 (메뉴얼에는 svn checkout 할때라고 적혀있음) 사용자 로긴과 패스워드를 묻는 명령어가 뜬다고 되어 있습니다. 근데 root가 맨처음 소스를 import를 할때를 제외하고는 그런 적이 없음... root는 몰라도 적어도 sychoi는 로긴과 패스워드를 묻는 명령어가 떠야 하지 않나요?

<설정파일>

1. 설정파일 svn repository의 conf 파일 아래 svnserve.conf, passwd, auth, svn_access_file, svn_auth_file, collabnet_subversion_httpd.conf

1) svnserve.conf

anon-access=write
auth-access=write
password-db=passwd
realm= My first Repository

2)passwd

[users]
root=thdud1289
sychoi=thdud1289
test=12345

3) collabnet_suvberaion_httpd.conf

------------------------------------------------------------------
ServerName 150.197.21.93:80
Listen 80

User csvn

Group csvn

DAV svn SVNParentPath /var/svn/repositories AuthzSVNAccessFile //etc/opt/CollabNet_Subversion/conf/svn_access_file Satisfy Any Require valid-user AuthType Basic AuthName "Subversion repository" AuthUserFile //etc/opt/CollabNet_Subversion/conf/svn_auth_file ------------------------------------------------------------------------

4) svn_access_file

[/]
sychoi=rw
root=rw
* = r

5) svn_auth_file

ServerName 150.1297.21.93:80
[/]
sychoi:W9IQheZE/Ed6
root:9i183NbGp6NBo

위의 설정 파일들을 보시면 아시겠지만 제 생각에는 잘 못된 것이 없는 것 같습니다.

단 하나 마음에 걸리는 것은

1. SVN repository : /var/svn/repositories/TEST
2. 실제 소스파일 위치 : /TEST1
3. http URL : http://150.197.21.93:80/svn/TEST

svn repository의 위치와 실제 소스 파일의 위치가 다르고 http URL에서 svn/TEST 와 실제 소스파일 디렉토리 이름(TEST1)이 다르다는 것입니다.
메뉴얼에는 달라도 된다고 나와 있는데요...
일단은 걸리는 게 이정도....

SVN을 사용해 보신 고수분들께서 좀 도와주시면 감사하겠습니다.

bakdorazi의 이미지

VMware6.5에 솔라리스10(x86)에 SVN은 CollabNet Subversion 1.5.4.1버젼입니다.

http://www.collab.net 에서 다운받았습니다. (python 2.2 버젼이상 필요)

SSL과 Apache를 모두 포함한 SVN 패키지 바이너리 파일이라서 pkgadd -d 명령으로 설치 후 Configure-CollabNet-Subversion이라고 해주면

아파치 설정, 레파지토리 경로와 설정, 사용자 추가, 패스워드 설정등을 모두 자동으로 설정할 수 있게 해줍니다.

설치는 다른 SVN과 좀 다르지만 사용방법은 거의 유사한 것 같은데요...

문제가 일어나는게 무엇때문인지 모르겠네요.

bakdorazi의 이미지

안녕하세요.

SVN에서 체크아웃을 할때 root와 sychoi의 경우 서로 다른 작업공간을 가져야 합니다. 예를 들어

root : # svn checkout http://150.197.21.93/svn/SVNtest/trunk RootDB
(<= RootDB 디렉토리로 SVN trunk의 내용이 복사. 이때 RootDB의 소유주는 root.
이제부터 root는 RootDB에서 소스를 commit 하고 update하고 add, delete, merge, log등의 모든 SVN 명령어를 이용해서 소스 수정을 할 수 있음)

sychoi : # svn checkout http://150.197.21.93/svn/SVNtest/trunk SYDB
(<= SYDB 디렉토리로 SVN trunk 내용이 복사. 이때 SYDB의 소유주는 sychoi.
이제부터 sychoi는 SYDB 디렉토리에서 소스를 add, delete, modify, merge 하는 모든 작업을 할 수 있음.
이 디렉토리에서 sychoi는 SVN 작업을 해야 함)

원글의 문제점 : TEST1 디렉토리를 하나 만들고 거기에 root와 sychoi가 모두 checkout 해서 같은 이름의 TEST1을 만들어냄..
문제는 제일 기본 TEST1 디렉토리를 root가 아래 명령으로 만들었기 때문에 sychoi에게 권한이 없어짐

root : # svn checkout http://150.197.21.93/svn/TEST/trunk TEST1 (<= root가 TEST1의 소유자)

sychoi : # cd TEST1

sychoi : # svn checkout http://150.197.21.93/svn/TEST/trunk TEST1 (<= sychoi가 /TEST1/TEST1의 소유자)

결국 맨 상위 디렉토리의 소유자가 root 이므로 하위 디렉토리에서 sychoi가 어떤 작업을 해도 permission deny가 됨...ㅠㅠ

제가 CollabNet SVN을 삭제하고 다시 깔고 나서 처음부터 다시 해보다가 위의 잘못을 발견했습니다.

다시 한 번 저의 부주의함을 반성합니다.

저의 질문을 읽고 고민해 주신 모든 분들께 감사드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.