2010-02-01 49 views
18

Tôi là người dùng mới với SVN và tôi gặp sự cố trên lệnh cam kết SVN.SVN cam kết không thành công với lỗi "Cấp phép không thành công"

Tôi sử dụng TortoiseSVN 1.6.6 và hình ảnh Subversion Ubuntu với WMware làm máy chủ.

Tôi đã tạo một kho lưu trữ trên máy chủ SVN và tôi có thể dễ dàng kiểm tra tệp từ kho lưu trữ, nhưng cam kết.

Khi tôi cam kết, nó luôn hiển thị sự cố.

Command: Commit 
Error: Commit failed (details follow): 
Error: Authorization failed 
Finished!: 

Sự cố này chỉ hiển thị ở máy khách cục bộ với kho lưu trữ máy chủ SVN trên VM. Tôi đã thử tạo kho lưu trữ trên máy cục bộ với TortoiseSVN và không có vấn đề gì với Commit. Tôi cũng đã thử một bản sao làm việc trên máy chủ, nó cũng không có vấn đề gì với Commit.

Có ai gặp phải sự cố này không? Nó không phải là bất kỳ vấn đề trên Checkout từ máy chủ VM SVN nhưng nó cho thấy sự cố trên máy khách địa phương cam kết với máy chủ VM.

Mọi thứ có cần phải được thiết lập mà tôi đã bỏ lỡ không?

+2

Câu hỏi này cũ nhưng tôi sẽ thêm 2 xu vì gần đây tôi đã có vấn đề này. Vấn đề của tôi là cách tôi kiểm tra kho lưu trữ. Tôi vô tình sử dụng svn: //example.com/Repo thay vì svn + ssh: //[email protected]/Repo làm nguồn và thanh toán ẩn danh hoạt động tốt, nhưng tôi không thể cam kết. Nếu tôi chắc chắn rằng tôi đã kiểm tra nó giống như cách tôi đang làm trên các hệ thống khác, tôi sẽ không gặp vấn đề gì nhưng tôi thì không. Có thể đáng để kiểm tra nếu đây là vấn đề của bạn: so sánh nguồn repo giữa làm việc và không làm việc và xem liệu có bất cứ điều gì rõ ràng là không ổn. – Wug

Trả lời

3

Trước hết, bạn có thể duyệt kho lưu trữ từ Rùa không? Nếu bạn có thể, thì tài khoản người dùng bạn đang truy cập kho lưu trữ không có quyền ghi (= cam kết).

Nếu bạn không thể duyệt không cam kết: Có thể Tortoise đã lưu trữ dữ liệu xác thực sai trên máy khách của bạn. Tôi nghĩ rằng nó nên yêu cầu các thông tin đăng nhập một lần nữa trong trường hợp đó, nhưng có lẽ nó không. Hãy thử điều này:

  1. Mở menu Start của bạn, hãy vào nhóm TortoiseSVN

  2. Bấm "Cài đặt TortoiseSVN"

  3. Đến "dữ liệu đã lưu"

  4. Bấm "Clear" trong "Dữ liệu xác thực"

Rùa sau đó sẽ quên tất cả mật khẩu được lưu trữ và sẽ hỏi lại lần sau khi bạn cố truy cập VM.

+0

Tôi gặp vấn đề tương tự. Tôi không có bất kỳ vấn đề cho SVN duyệt, kiểm tra từ SVN Repository. Điều này chỉ xảy ra trên máy tính xách tay của tôi. Tuy nhiên, nếu tôi từ xa máy tính để bàn vào các máy khác, tôi có thể kiểm tra mã, duyệt và cũng Cam kết. Vì vậy, bất cứ khi nào tôi phải kiểm tra trong bất kỳ mã nào, tôi sẽ phải sao chép mã vào máy Remote và kiểm tra nó. Tôi đang sử dụng Windows 8 - 64bit OS. Thông tin Phiên bản SVN: TortoiseSVN 1.8.2, Xây dựng 24708 - 64 Bit, 2013/08/27 19:20:39 Phiên bản 1.8.3, -release apr 1.4.8 apr-util 1.5.2 serf 1.3. 1 OpenSSL 1.0.1e 11 Feb 2013 zlib 1.2.8 – MoG

+0

http://stackoverflow.com/questions/19328149/tortoise-svn-commit-failed-details-below-authorization-failed – MoG

5

Nếu máy chủ đang sử dụng svnserve để phục vụ kho lưu trữ (có nghĩa là bạn đang sử dụng URL svn://) thì bạn nên kiểm tra tệp conf/svnserve.conf trong kho lưu trữ. Cấu hình mặc định cho phép đọc nặc danh, nhưng chỉ có quyền truy cập ghi được xác thực IIRC.

14

Đó là ủy quyền không thành công. Điều đó có nghĩa là bước đầu tiên, xác thực đã thành công.

Vì vậy: tên người dùng/mật khẩu chính xác và đã được máy chủ của bạn chấp nhận. Nhưng sau đó người dùng đó không được phép truy cập đường dẫn/tài nguyên.

kiểm tra tệp ủy quyền dựa trên đường dẫn của bạn (conf/authz) và đảm bảo rằng người dùng có quyền.

0

Ngoài ra, hãy kiểm tra kỹ xem kho lưu trữ thực trên máy chủ có quyền truy cập tệp chính xác được ghi vào bởi quy trình máy chủ (svnserve hoặc Apache) hay không. Nó có thể ổn vì bạn đã có thể tạo kho lưu trữ theo những cách khác, nhưng nó đáng giá để kiểm tra chỉ trong trường hợp.

4

Tôi gặp sự cố tương tự với RapidSVN (hoặc khi sử dụng svn commit từ CLI). Vấn đề này bật ra rằng tôi đang kiểm tra các repo bằng cách sử dụng Ẩn danh Subversion Access (liên kết svn://):

svn checkout svn://svn.r-forge.r-project.org/svnroot/rsitesearch/

Nhưng khi sử dụng liên kết này cho repo bạn không thể cam kết thay đổi. Vì vậy, giải pháp là sử dụng các svn+ssh:// liên kết cho phép nhà phát triển Subversion truy cập thông qua SSH:

svn checkout svn+ssh://[email protected]/svnroot/rsitesearch/

Với dịch vụ SVN khác, liên kết chính xác cho cam kết có thể là https://. Thực ra tôi có trải nghiệm tốt hơn với thanh toán https://, vì vậy hãy thử trước tiên.

Bây giờ svn commit sẽ hoạt động như mong đợi.

(Đây là giải pháp tương tự như một trong những đề xuất bởi WUG trong bình luận cho OP.)

+0

Và nếu bạn chỉ rối tung về trên thiết lập cục bộ của riêng bạn và muốn cấu hình cái gì đó hoạt động nhưng mở ra khả năng ghi có khả năng nguy hiểm, bạn có thể thay đổi dòng trong svnserve.conf từ '# anon-access = read' thành' anon-access = write' (lưu ý ** anon ** - truy cập, không ** auth ** - truy cập) –

1

Kiểm tra tập tin của bạn sử dụng giao thức http thay cho giao thức svn. Tôi đã có cùng một vấn đề như tôi đã kiểm tra các tập tin bằng cách sử dụng giao thức svn: //. Sau đó, tôi đã thay đổi giao thức thành http: // và mọi thứ bắt đầu hoạt động bình thường.

3

Trải nghiệm của tôi tương tự như màu xanh lá cây Tôi đã tạo một kho lưu trữ mới một cách chính xác nhưng chưa thiết lập đúng người dùng. Nó cho tôi Checkout nhưng không Commit

Sửa repoLocation /conf/svnserve.conf và bỏ ghi chú dòng

mật khẩu-db = passwd

Sửa repoLocation/conf/passwd và thêm tên người dùng và mật khẩu để chuyển vào ví dụ

tim = password

+0

Chỉ cần lưu ý: cặp tên và mật khẩu phải được đặt trên 'repoLocation/conf/passwd ', không phải bên trong' svnserve.conf ', vì với dòng trên bạn đang yêu cầu dịch vụ tìm kiếm tệp đó. – Endrik

+0

Cảm ơn, chỉnh sửa được thực hiện –

3

Nếu bạn đang sử dụng svnserve để cung cấp quyền truy cập SVN (tức là url kho lưu trữ của bạn trông giống như svn://server/repo), đảm bảo máy chủ của bạn cho phép quyền ghi. Trong một số cài đặt, máy chủ được bắt đầu bằng quyền truy cập chỉ đọc theo mặc định:

# The -R option enforces read-only access, i.e. write operations to the 
# repository (such as commits) will not be allowed. 
SVNSERVE_OPTIONS="-d -R -r /srv/svn/repos" 
+0

Oh ngu ngốc tôi! Đã thêm -R bản thân mình ... – sschrass

+0

Bạn đã lưu tôi một vài giờ! Cảm ơn! – kissgyorgy

+0

trong tệp đó là gì? – Louis

10

Đối với tôi đó là do di chuyển máy chủ. Trong svnserve.conf Tôi quên bỏ ghi chú:

auth-access = write 
password-db = passwd 
+0

đây là lỗi phổ biến nhất của tôi khi sử dụng các kho lưu trữ mới. – Agguro

Các vấn đề liên quan