windows - subversion via cifs virker ikke

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at bruge subversion på en linux-maskine, depotet er på en Microsoft sbs2008-server. (Jeg kan få adgang til depotet fra en Microsoft Windows 7-maskine.) Kan nogen fortælle mig, hvordan man får det til at fungere?


Dette er hvad jeg har gjort.


# sudo mount -t cifs -v -o credentials=~/Files/server-mount-credentials,uid=richard,nocase,nounix,nosuid  //sbs2008/local ~/Files/server-mount/

# svn commit -m ""

Adding         file1
Sending        file2
Transmitting file data ........svn: Commit failed (details follow):
svn: database is locked


Stracen viser:


open("/home/rdelorenzi/Files/server-mount/svn\_repository/db/rep-cache.db", O\_RDWR|O\_CREAT|O\_LARGEFILE, 0644) = 12

...

\_llseek(12, 162816, [162816], SEEK\_SET) = 0
read(12, "
201 1 1N1|12521330260242b222022762354332"..., 1024) = 1024

\_llseek(12, 100352, [100352], SEEK\_SET) = 0
read(12, "
24ii2273053631!1O1}12531331270252c"..., 1024) = 1024
\_llseek(12, 52224, [52224], SEEK\_SET)   = 0
read(12, "
24k2313073651#1Q1177125513332	0272d2222"..., 1024) = 1024

fcntl64(12, F\_SETLK64, {type=F\_WRLCK, whence=SEEK\_SET, start=1073741824, len=1}, 0xbf8e15e8) = 0
fcntl64(12, F\_SETLK64, {type=F\_WRLCK, whence=SEEK\_SET, start=1073741826, len=510}, 0xbf8e15e8) = -1 EACCES (Permission denied)

Bedste reference


Du må ikke montere et subversion repository via en netværksandel, det har bare ikke været pålideligt.



  fil://adgang er kun beregnet til lokal, enkeltbrugeradgang, især test og fejlsøgning. Når du vil dele opbevaringsstedet, skal du virkelig oprette en ordentlig server, og det er næsten ikke så svært, som du måske tror. Læs afsnittet 'Accessing the Repository' for at få vejledning i valg og opsætning af en server. [[Link]] [8]



Du skal køre en SVN-server, som David W noterer.

Andre referencer 1


Har du kontrol over Windows-maskinen? Er port 3690 unblocked? Hvorfor ikke bruge svnserve serveren på Windows-maskinen. Derefter behøver du ikke montere filsystemer.


På din Windows-maskine:



 c:> svnserve -r C:path	oyour
epository -d


På din Linux-boks



$ svn co svn://sbs2008/trunk


En anden mulighed er at bruge VisualSVN Server på din Windows-boks. Derefter kunne du bruge Apache 's httpd til at få adgang til dit depot: [9]


$ svn co http://sbs2008/svn/trunk


VisualSVN Server er ikke åben kilde, men den er gratis, så længe du ikke har brug for avancerede ting som Windows Active Directory-forbindelser.

Andre referencer 2


Godt. Lad os forestille mig, at jeg ikke kan og kan ikke forstå kommandoen mount og parametrene.


I dette tilfælde spørger jeg bare:



  Hvad præcist vil du gøre? Arbejd direkte med filer i repository (ikke filer i repo , men filer af ) ?! Af hvilke grunde ?!



Subversion har Client-Server-arkitektur, klienten kommunikerer med serveren, hvilket skjuler klientoplysninger om håndtering af fysisk lagringsbackend [10]



  Subversion s netværk lag er abstraheret, hvilket betyder, at Subversion klienter udviser samme generelle adfærd uanset hvilken slags server de opererer imod. Uanset om man taler HTTP-protokollen (http://) med Apache HTTP Server eller taler den brugerdefinerede Subversion-protokol (svn://) med svnserve er den grundlæggende netværksmodel den samme.



Du som klient-menneske arbejder med fysisk repræsentation af Repository (tilstand af repo) i Arbejdskopi , logisk repræsentation af Repository , der leveres af et par klienter og servere; svn-client som klientprogram kommunikerer med repository server, håndtering lagerplads ved hjælp af nogen af ​​de eksponerede servere adgangsprotokoller og serveren arbejder senere med repository på det lavest mulige lag ( læs-skrive filer)

Andre referencer 3


Dette er ikke så meget et svar som et par spørgsmål for dig at mulle over.


Hvorfor går du ud fra, at dette vil fungere? CIFS-filsystemdriveren udsætter NTFS-filsystemet på en sådan måde, at du i værste fald kun kan læse filer. Funktionaliteten udsat af cifs-driveren skal have en matchende funktionalitet i NTFS-slutningen af ​​tingene.


Så hvis det, der kræves af SVN, er funktionalitet enten uudnyttet eller ikke understøttet, kan du meget vel ende med et problem som dette.


Jeg foreslår at kigge på cif-dokumentationen og kontrollere, om der er kendte begrænsninger eller måder at tilpasse chaufføren til, måske tilbyde mere funktionalitet.


Og selvfølgelig skal du kontrollere ACL'erne i det eksporterede NTFS-filsystem. Hvis denne operation understøttes af cifs-driveren og skal fungere, vil den stadig mislykkes, hvis NTFS-filsystemet har den forkerte ejer eller et skrivebeskyttet bit sæt.