For bakgrunn på spørsmålet mitt: svn vil ikke diff en fil som den synes er binær. Et nylig stakkoverløp svar (svn diff: fil merket som binær type) viste at du kan tvinge en mime type: Merk at tidligere svar er ufullstendig. du må også: Nå er mitt nye spørsmål: Kan jeg angi en standard, så alle fremtidige vnd. google-earth. kmlxml-filer blir behandlet som tekst av svn Redbooken ser stille ut på dette emnet: svnbook. red-beanen1.2svn. advanced. props. html sier bare: Hvilke unntak er disse unntakene bakket inn i svn-koden, eller tilgjengelig Svaret avhenger av svn-klienten du bruker. I den offisielle svn-klienten er alternativet du leter etter, automatisk innstilling av fast eiendom. Tldr-versjonen må du oppdatere brukeren eller systemkonfigurasjonen. sett inn aktiverings-auto-props-innstillingen til Ja i Miscellany-delen, og opprett en ny seksjon som kalles auto-props som definerer mønstrene du vil matche og egenskapene du vil sette. For ditt eksempel på kml-filer: Dette vil sikre at når du legger til en. kml-fil i lageret ditt, vil den ha en mime-type tekstplain og vil bruke linjeendringer som er opprinnelige til klientens plattform. Binære filer og oversettelse i Generell forståelse, Subversion håndterer binære filer mer grasiøst enn CVS gjør. Fordi CVS bruker RCS, kan den bare lagre påfølgende fulle kopier av en endring binær fil. Subversion uttrykker imidlertid forskjeller mellom filer ved hjelp av en binær differensjonsalgoritme, uansett om de inneholder tekst - eller binærdata. Det betyr at alle filer lagres differensielt (komprimert) i depotet. CVS-brukere må markere binære filer med - kb-flagg for å forhindre at data blir søppel (på grunn av utvidelse av søkeord og linjeskiftende oversettelser). De glemmer noen ganger å gjøre dette. Subversion tar den mer paranoide ruten. For det første utfører det aldri noen form for søkeord eller linjeskiftende oversettelse, med mindre du eksplisitt ber deg om å gjøre det (se avsnittet Kalt søkeordsubstitusjon og seksjonen som kalles End-of-Line Character Sequences for flere detaljer). Som standard behandler Subversion alle fildata som bokstavelige byte strenger, og filer lagres alltid i depotet i en utranslert tilstand. For det andre opprettholder Subversion et internt begrep om en fil er tekst - eller binærdata, men dette begrepet eksisterer bare i arbeidskopien. Under en svn-oppdatering. Subversion vil utføre kontekstuelle sammenslåinger på lokalt modifiserte tekstfiler, men vil ikke forsøke å gjøre det for binære filer. For å finne ut om en kontekstuell fusjon er mulig undersøker Subversion egenskapen svn: mime-type. Hvis filen ikke har en svn: mime-type-egenskap, eller har en MIME-type som er tekstlig (for eksempel tekst), antar Subversion at det er tekst. Ellers antar Subversion at filen er binær. Subversion hjelper også brukere med å kjøre en binær deteksjonsalgoritme i svn import og svn add kommandoer. Disse kommandoene vil gi et godt gjetning og deretter (muligens) sette en binary svn: mime-type eiendom på filen som blir lagt til. (Hvis Subversion gjetter feil, kan brukeren alltid fjerne eller håndredigere eiendommen.) Du leser Versjonskontroll med Subversion (for Subversion 1.7), av Ben Collins-Sussman, Brian W. Fitzpatrick og C. Michael Pilato. Dette arbeidet er lisensiert under Creative Commons Attribution License v2.0. For å se en kopi av denne lisensen, besøk Creative Commons nettsted eller send et brev til Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. For å sende inn kommentarer, rettelser eller andre bidrag til teksten, vennligst besøk svnbook. Properties Weve har allerede dekket detaljert hvordan Subversion lagrer og henter ulike versjoner av filer og kataloger i depotet. Hele kapitlene har vært viet til denne mest grunnleggende funksjonaliteten som tilbys av verktøyet. Og hvis versionsstøtten stoppet der, ville Subversion fortsatt være komplett fra et versjonskontrollperspektiv. Men det stopper ikke der. I tillegg til å redigere katalogene og filene dine, gir Subversion grensesnitt for å legge til, endre og fjerne versjoned metadata på hver av dine versjonerte kataloger og filer. Vi refererer til denne metadata som egenskaper. og de kan betraktes som to kolonne-tabeller som viser eiendomsnavn til vilkårlig verdi knyttet til hvert element i arbeidskopien. Vanligvis kan navnene og verdiene til egenskapene være hva du vil at de skal være, med den begrensningen at navnene må inneholde bare ASCII-tegn. Og det beste ved disse egenskapene er at de også er versjonert, akkurat som tekstinnholdet i filene dine. Du kan endre, begå og tilbakestille eiendomsendringer like enkelt som du kan legge til innholdsendringer. Og sendingen og mottakelsen av eiendomsendringer skjer som en del av den typiske forpliktelsen og oppdateringen du trenger ikke å endre dine grunnleggende prosesser for å imøtekomme dem. Subversion har reservert settet av egenskaper hvis navn begynner med svn: som sin egen. Mens det bare er en håndfull slike egenskaper i bruk i dag, bør du unngå å skape tilpassede egenskaper for dine egne behov hvis navn begynner med dette prefikset. Ellers risikerer du at en fremtidig utgivelse av Subversion vil vokse støtte til en funksjon eller oppførsel drevet av en eiendom med samme navn, men med kanskje en helt annen tolkning. Egenskaper dukker opp andre steder i Subversion, også. Akkurat som filer og kataloger kan ha vilkårlig eiendomsnavn og verdier knyttet til dem, kan hver revisjon som helhet ha vilkårlig egenskaper knyttet til den. De samme begrensninger applyhuman-lesbare navn og alt-du-vil-binære verdier. Hovedforskjellen er at revisjonsegenskapene ikke er versjonert. Med andre ord, hvis du endrer verdien av eller sletter en revisjonsegenskap, er det ingen måte, innenfor omfanget av Subversions-funksjonalitet, å gjenopprette tidligere verdi. Subversion har ingen spesiell policy om bruk av egenskaper. Det ber bare om at du ikke bruker eiendomsnavn som begynner med prefiks svn: som det er navneområdet som det settes til side for eget bruk. Og Subversion bruker faktisk egenskaper, men den versjonsversjon og unversioned variasjon. Enkelte versjonsegenskaper har spesiell betydning eller effekter når de finnes på filer og kataloger, eller de inneholder en viss informasjon om revisjonene de er funnet på. Enkelte revisjonsegenskaper blir automatisk knyttet til revisjoner av Subversions-commitprosessen, og de har informasjon om revisjonen. De fleste av disse egenskapene er nevnt andre steder i dette eller andre kapitler som en del av de mer generelle emnene de er relatert til. For en uttømmende liste over forhåndsdefinerte egenskaper i Subversions, se avsnittet "Subversion Properties" i Kapittel 9, Fullstendig Subversion Referanse. Mens Subversion automatisk fester egenskaper (svn: dato. Svn: forfatter. Svn: logg og så videre) til revisjoner, antar det ikke etterfølgende eksistensen av disse egenskapene, og ikke heller skal du eller verktøyene du bruker til å samhandle med depotet ditt . Revisjonsegenskaper kan slettes programmatisk eller via klienten (hvis tillatt av lagerkrokene) uten å skade Subversions evne til å fungere. Så, når du skriver skript som opererer på dine Subversion-arkivdata, gjør du ikke feilen ved å anta at det finnes en bestemt revisjonsegenskap ved en revisjon. I denne delen vil vi undersøke verktøyet til brukere av Subversion og å Subversion itselfof eiendomsstøtte. Du lærer om eiendomsrelaterte svn-underkommandoer og hvordan eiendomsendringer påvirker din normale Subversion-arbeidsflyt. Hvorfor Egenskaper Like Subversion bruker egenskaper for å lagre ekstra informasjon om filene, katalogene og revisjonene som den inneholder, kan du også finne egenskaper som skal brukes av samme type. Det kan hende du finner det nyttig å ha et sted nær din versionsdata for å henge tilpassede metadata om dataene. Si at du ønsker å designe et nettsted som inneholder mange digitale bilder, og viser dem med bildetekster og datastempel. Nå er ditt sett med bilder stadig skiftende, så du liker å ha så mye av dette nettstedet automatisert som mulig. Disse bildene kan være ganske store, slik det er vanlig med nettsteder av denne typen, vil du gi mindre miniatyrbilder til besøkende på nettstedet ditt. Nå kan du få denne funksjonaliteten ved hjelp av tradisjonelle filer. Det vil si at du kan få ditt bilde123.jpg og et bilde123-thumbnail. jpg side om side i en katalog. Eller hvis du vil beholde filnavnene det samme, kan du ha miniatyrbildene dine i en annen katalog, for eksempel thumbnailsimage123.jpg. Du kan også lagre bildetekster og datastempel på lignende måte, igjen adskilt fra den opprinnelige bildefilen. Men problemet her er at samlingen av filer multipliserer med hvert nytt bilde lagt til nettstedet. Betrakt nå det samme nettstedet som distribueres på en måte som gjør bruk av Subversions-filegenskaper. Tenk deg å ha en enkelt bildefil, image123.jpg. med egenskaper satt på den filen som er kalt bildetekst. datostempel. og til og med miniatyrbilde. Nå ser arbeidsbiblioteket ditt mye mer håndterbart, det ser ut til den uformelle nettleseren som det ikke er noe annet enn bildefiler i det. Men automatiseringsskriptene dine vet bedre. De vet at de kan bruke svn (eller enda bedre, de kan bruke Subversion-språkbindingene, se avsnittet "Bruke APIene") for å grave ut den ekstra informasjonen som nettstedet ditt trenger å vise uten å måtte lese en indeksfil eller spillbane manipulasjonsspill . Mens Subversion plasserer få restriksjoner på navnene og verdiene du bruker for egenskaper, er det ikke designet for å bære store eiendomsverdier eller store sett med egenskaper på en gitt fil eller katalog. Subversion inneholder vanligvis alle eiendommens navn og verdier knyttet til et enkelt element i minnet samtidig, noe som kan forårsake skadelig ytelse eller mislykket drift når ekstremt store eiendomssett brukes. Tilpassede revisjonsegenskaper brukes også ofte. En vanlig slik bruk er en egenskap hvis verdi inneholder en problemsporings-ID som revisjonen er knyttet til, kanskje fordi endringen som ble gjort i denne revisjonen, løser en feil som er arkivert i sporingsspørsmålet med den IDen. Andre bruksområder inkluderer å henge mer vennlige navn på revisjonen, kan det være vanskelig å huske at revisjonen 1935 var en fullt testet revisjon. Men hvis det er sagt, en test-resultater eiendom på den revisjonen med verdien alle bestått. det er meningsfull informasjon å ha. Og Subversion gjør det enkelt å gjøre dette via alternativet --with-revprop for svn commit-kommandoen: Searchability (eller, hvorfor ikke egenskaper) For alle deres verktøy, Subversion propertiesor, mer nøyaktig, de tilgjengelige grensesnittene til dem har en stor mangel: mens det er en enkel sak å sette en egendefinert eiendom, er det en helt annen ball av voks å finne den egenskapen senere. Å forsøke å finne en egendefinert revisjonsegenskap innebærer vanligvis å utføre en lineær tur over alle revisjonene i depotet, og spør om hver revisjon. Har du eiendommen jeg ser etter. Bruk alternativet --with-all-revprops med svn-loggkommandoer XML utgangsmodus for å lette dette søket. Legg merke til tilstedeværelsen av de egendefinerte revisjonsegenskapens testresultater i følgende utdata: Å prøve å finne en egendefinert versjon er også smertefull, og innebærer ofte en rekursiv svn som stammer over en hel arbeidskopi. I din situasjon kan det ikke være så ille som en lineær spasertur over alle revisjoner. Men det forlater absolutt mye å være ønsket med hensyn til både ytelse og sannsynlighet for suksess, spesielt hvis omfanget av søket ditt ville kreve en arbeidskopi fra roten til ditt lager. Av denne grunn kan du velge spesielt i revisjonens eiendomsbruk, bare legge til metadataene i revisjonsloggmeldingen ved å bruke noen policydrevet (og kanskje programmatisk håndhevet) formatering som er designet for å bli raskt analysert fra utgangen av svn loggen. Det er ganske vanlig å se følgende i Subversion logg meldinger: Men her ligger igjen en ulykke. Subversion gir imidlertid ikke en loggemeldingsmekanisme, noe som ville gå langt i retning av å hjelpe brukerne å være i samsvar med formateringen av deres loggbaserte revisjonsmetadata. Manipulerende egenskaper Svn-programmet gir noen måter å legge til eller endre fil - og katalogegenskaper. For egenskaper med korte, lesbare verdier, er kanskje den enkleste måten å legge til en ny egenskap, å spesifisere eiendomsnavnet og verdien på kommandolinjen til svn-propset-underkommandoen: Men vi har vært i stand til fleksibiliteten som Subversion tilbyr for eiendomsverdiene dine . Og hvis du planlegger å ha en multiline tekstlig eller til og med binær eiendomsverdi, vil du sannsynligvis ikke gi den verdien på kommandolinjen. Så underkommandoen svn propset tar et --file (-F) alternativ for å angi navnet på en fil som inneholder den nye eiendomsverdien. Det er noen begrensninger på navnene du kan bruke for egenskaper. Et eiendomsnavn må starte med et bokstav, et kolon (.) Eller et understreke () etter det, du kan også bruke sifre, bindestreker (-) og perioder (.). 13 I tillegg til propset-kommandoen leverer svn-programmet propedit-kommandoen. Denne kommandoen bruker det konfigurerte redigeringsprogrammet (se delen kalles Config) for å legge til eller endre egenskaper. Når du kjører kommandoen, påkaller svn editorprogrammet ditt på en midlertidig fil som inneholder den nåværende verdien av eiendommen (eller den er tom, hvis du legger til en ny egenskap). Deretter endrer du bare verdien i editorprogrammet ditt til den representerer den nye verdien du vil lagre for eiendommen, lagrer den midlertidige filen, og avslutt deretter redigeringsprogrammet. Hvis Subversion oppdager at du faktisk har endret den eksisterende verdien av eiendommen, vil den akseptere det som den nye eiendomsverdien. Hvis du avslutter editoren din uten å gjøre noen endringer, vil det ikke forekomme eiendomsendringer: Vi bør merke at, som med andre svn-underkommandoer, kan de som er relatert til egenskaper, fungere på flere baner samtidig. Dette gjør at du kan endre egenskaper på hele sett med filer med en enkelt kommando. For eksempel kunne vi ha gjort følgende: All denne egenskapen å legge til og redigere er ikke veldig veldig nyttig hvis du ikke kan få den lagrede eiendomsverdien. Så svn-programmet leverer to underkommandoer for visning av navn og verdier av egenskaper lagret på filer og kataloger. Kommandoen svn proplist vil liste navnene på egenskaper som finnes på en bane. Når du vet navnet på egenskapene på noden, kan du be om deres verdier enkeltvis ved hjelp av svn propget. Denne kommandoen vil, gitt et eiendomsnavn og en sti (eller et sett med stier), skrive ut verdien av egenskapen til standard utgangsstrøm. Det er enda en variant av proplist-kommandoen som vil vise både navnet og verdien for alle egenskapene. Bare legg til --verbose (-v) alternativet. Den siste egenskapsrelaterte underkommandoen er propdel. Siden Subversion lar deg lagre eiendommer med tomme verdier, kan du ikke fjerne en eiendom helt ved hjelp av svn propedit eller svn propset. Denne kommandoen gir for eksempel ikke den ønskede effekten: Du må bruke propdel-underkommandoen for å slette egenskaper helt. Syntaxen ligner de andre egenskapskommandoerene: Husk de ikke-revisjonseiendommene Du kan også endre disse med de samme svn-underkommandoene som vi nettopp har beskrevet. Bare legg til --revprop kommandolinjeparameteren og angi revisjonen hvis eiendom du ønsker å endre. Siden revisjonene er globale, trenger du ikke å spesifisere en målbane til disse egenskapsrelaterte kommandoene så lenge du er plassert i en arbeidskopi av depotet hvis revisjonsegenskap du vil endre. Ellers kan du bare angi nettadressen til en hvilken som helst bane i depotet av interesse (inkludert repositorys root-URL). For eksempel vil du kanskje erstatte kommandobloggmeldingen til en eksisterende revisjon. 14 Hvis din nåværende arbeidskatalog er en del av en arbeidskopi av depotet ditt, kan du bare kjøre kommandoen svn propset uten målbane: Men selv om du ikke har sjekket ut en arbeidskopi fra det aktuelle depotet, kan du fortsatt påvirke egenskapen endring ved å gi repositorys root URL: Vær oppmerksom på at evnen til å modifisere disse unversioned egenskapene må være eksplisitt lagt til av depotadministratoren (se avsnittet "Commit Log Message Correction"). Det skyldes at egenskapene er utgitt, slik at du risikerer å miste informasjon hvis du ikke er forsiktig med dine endringer. Lageradministratoren kan sette opp metoder for å beskytte mot dette tapet, og som standard er modifisering av ikke-overførte egenskaper deaktivert. Brukere bør, hvor det er mulig, bruke svn propedit istedenfor svn propset. Mens sluttresultatet av kommandoene er identisk, vil førstnevnte tillate dem å se den nåværende verdien av eiendommen som de skal endre, noe som hjelper dem å verifisere at de faktisk gjør endringen de tror de lager . Dette gjelder spesielt når du endrer uoversiktlige revisjonsegenskaper. Det er også betydelig lettere å endre multiline egenskapsverdier i et tekstredigeringsprogram enn på kommandolinjen. Egenskaper og Subversion Workflow Nå som du er kjent med alle eiendomsrelaterte svn-underkommandoer, kan vi se hvordan eiendomsendringer påvirker den vanlige Subversion-arbeidsflyten. Som nevnt tidligere, er fil - og katalogegenskaper versjonen, akkurat som filinnholdet. Som et resultat gir Subversion de samme mulighetene for å smelte sammen eller i konflikt med enslige endringer i ditt eget. Som med filinnhold, er endringer i eiendommen lokale endringer, kun gjort permanente når du forplikter dem til depotet med svn-commit. Dine eiendomsendringer kan enkelt gjøres utenom, for å svn tilbake kommandoen vil gjenopprette filer og kataloger til deres unedited statescontents, egenskaper og alt. Du kan også motta interessant informasjon om tilstanden til fil - og katalogegenskapene ved å bruke svn-status og svn diff-kommandoer. Legg merke til hvordan statuskommandoen viser M i den andre kolonnen i stedet for den første. Det er fordi vi har endret egenskapene på calcbutton. c. men ikke dets tekstinnhold. Hadde vi endret begge deler, ville vi også ha sett M i den første kolonnen. (Vi dekker svn-status i seksjonen kalt Se en oversikt over endringene dine). Som med filinnhold kan lokale eiendomsmodifikasjoner være i konflikt med endringer begått av noen andre. Hvis du oppdaterer arbeidskatalogkatalogen din og mottar endringer i eiendom på et versjonert objekt som kolliderer med din egen, vil Subversion rapportere at objektet er i konfliktstilstand. Subversion vil også lage, i samme katalog som konfliktobjektet, en fil med en. prej-utvidelse som inneholder detaljene i konflikten. Du bør undersøke innholdet i denne filen slik at du kan bestemme hvordan du skal løse konflikten. Inntil konflikten er løst, vil du se en C i den andre kolonnen av svn-statusutgangen for den objekten, og forsøk på å forplikte dine lokale endringer vil mislykkes. For å løse eiendomskonflikter, sørg bare for at de motstridende egenskapene inneholder de verdiene de burde, og bruk deretter svn-løsningen - godkjenningskommandoen for å varsle Subversion som du har løftet problemet manuelt. Du har kanskje også lagt merke til den ikke-standardiserte måten Subversion for øyeblikket viser eiendomsforskjeller på. Du kan fortsatt bruke svn diff og omdirigere utdata for å lage en brukbar oppdateringsfil. Lappeprogrammet vil ignorere egenskapen patchesas en regel, det ignorerer støy det ikke forstår. Dette betyr dessverre at du fullt ut skal bruke en patch generert av svn diff ved hjelp av patch. eventuelle eiendomsmodifikasjoner må brukes for hånd. Subversion 1.7 forbedrer denne situasjonen på to måter. For det første er dets ikke-standardvise visning av eiendomsforskjeller minst maskinlesbar forbedring over visning av egenskaper i versjoner før 1.7. Men Subversion 1.7 introduserer også svn-patch-underkommandoen, designet spesielt for å håndtere tilleggsinformasjonen som svn diff s-utdata kan bære, ved å bruke disse endringene til Subversion-arbeidskopien. Av spesifikke relevans for vårt emne, kan eiendomsforskjeller som er tilstede i patchfiler generert av svn diff i Subversion 1.7 eller bedre, automatisk påføres en arbeidskopi av svn-patch-kommandoen. For mer om svn patch. se svn patch i kapittel 9, Fullstendig referanse for subversion. Det er ett unntak for hvordan eiendomsendringer er rapportert av svn diff. endres til Subversions spesiell svn: mergeinfo propertyused til å spore informasjon om fusjoner som har blitt utført i lageret ditt beskrevet på en mer lesbar måte. Dette er ganske nyttig for menneskene som må lese disse beskrivelsene. Men det tjener også til å forårsake patching programmer (inkludert svn patch) for å hoppe over de endrede beskrivelsene som støy. Dette kan høres ut som en feil, men det er egentlig ikke fordi denne egenskapen er ment å bli styrt utelukkende av svn-fusjonen underkommandoen. For mer om merge sporing, se Kapittel 4, Forgrening og sammenslåing. Egenskaper for automatisk egenskapsinnstilling er en kraftig funksjon av Subversion, som fungerer som nøkkelkomponenter av mange Subversion-funksjoner som diskuteres andre steder i denne og andre kapitalseksuelle diff - og fusjonssupport, søkeordsubstitusjon, newline-oversettelse og så videre. Men for å få full nytte av egenskaper, må de settes på de riktige filene og katalogene. Dessverre kan dette trinnet lett glemmes i rutinemessige ting, spesielt siden det ikke er klart å sette en eiendom, resulterer det vanligvis i en åpenbar feil (i det minste i forhold til å si, ikke å legge til en fil til versjonskontroll). For å hjelpe egenskapene dine bli brukt til de stedene som trenger dem, tilbyr Subversion et par enkle, men nyttige funksjoner. Hver gang du introduserer en fil til versjonskontroll ved hjelp av svn add eller svn import kommandoer, forsøker Subversion å hjelpe ved å sette inn noen vanlige filegenskaper automatisk. For det første, på operativsystemer hvis filsystemer støtter en eksekveringsbit, vil Subversion automatisk sette svn: kjørbar egenskap på nylig lagt eller importerte filer hvis utførelsesbit er aktivert. (Se avsnittet File Executability senere i dette kapittelet for mer om denne egenskapen.) For det andre forsøker Subversion å bestemme filene MIME-typen. Hvis du har konfigurert en mime-typer-filer runtime konfigurasjons parameter, vil Subversion prøve å finne en MIME-type kartlegging i den filen for filtypen din. Hvis den finner en slik kartlegging, vil den sette filene svn: mime-type-egenskapen til MIME-typen den fant. Hvis ingen kartleggingsfil er konfigurert, eller ingen kartlegging for filtypen din ble funnet, vil Subversion falle tilbake til heuristiske algoritmer for å bestemme filene MIME-typen. Avhengig av hvordan den er bygget, kan Subversion 1.7 gjøre bruk av filskanningsbiblioteker 15 for å oppdage en filtype basert på innholdet. Mislykkes alt annet, vil Subversion bruke sin egen veldig grunnleggende heuristisk for å avgjøre om filen inneholder ikke-tekstlig innhold. Hvis ja, setter den automatisk svn: mime-type-egenskapen på den filen til applicationoctet-stream (den generiske dette er en samling av bytes MIME-type). Selvfølgelig, hvis Subversion gjetter feil, eller hvis du ønsker å angi egenskapen svn: mime-type til noe mer precise imagepng eller applicationx-shockwave-flash, kan du alltid fjerne eller redigere den egenskapen. (For mer om Subversions bruk av MIME-typer, se avsnittet File Content Type senere i dette kapitlet.) UTF-16 brukes vanligvis til å kode filer hvis semantisk innhold er tekstlig i naturen, men kodingen selv bruker stor byte som er utenfor det typiske ASCII-karakterbyteområdet. Som sådan vil Subversion ha en tendens til å klassifisere slike filer som binære filer, mye til chagrin av brukere som ønsker linjebasert differensiering og sammenslåing, søkeordsubstitusjon og andre oppføringer for disse filene. Subversion gir også, via sitt runtime-konfigurasjonssystem (se avsnittet Runtime Configuration Area), en mer fleksibel automatisk egenskapsinnstillingsfunksjon som lar deg lage mappings av filnavnsmønstre til eiendomsnavn og verdier. Nok en gang påvirker disse mappingene tillegg og import, og kan ikke bare overstyre standard MIME-typen avgjørelsen laget av Subversion under disse operasjonene, men kan også angi flere Subversion eller egendefinerte egenskaper også. For eksempel kan du opprette en kartlegging som sier at når som helst du legger til JPEG-filer, hvis navn matcher mønsteret. jpg Subversion skal automatisk sette egenskapen svn: mime-type på disse filene til imagejpeg. Eller kanskje noen filer som samsvarer med. cpp skal ha svn: eol-stil satt til innfødt. og svn: søkeord satt til id. Automatisk eiendomsstøtte er kanskje det mest praktiske eiendomsrelaterte verktøyet i Subversion-verktøykassen. Se delen Konfigurer for mer om hvordan du konfigurerer den støtten. Subversionadministratorer spør ofte om det er mulig å konfigurere et sett med eiendomsdefinisjoner på serversiden, som alle forbinderkunder automatisk vil vurdere når de opererer på arbeidskopier sjekket ut fra den serveren. Dessverre tilbyr Subversion ikke denne funksjonen. Administratorer kan bruke krokskript for å validere at egenskapene som er lagt til og endret på filer og kataloger, stemmer overens med administrators foretrukne retningslinjer, avvisende forpliktelser som ikke er i samsvar med denne måten. (Se avsnittet Kryptering av implementeringshuller for mer om krogskript.) Men det er ingen måte å automatisk diktere disse innstillingene til Subversion-klienter på forhånd. 13 Hvis du er kjent med XML, er dette ganske mye ASCII-undersettet i syntaksen for XML-navn. 14 Fastsetting av stavfeil, grammatisk gotchas og rettferdig feil i kommandobloggmeldinger er kanskje den vanligste brukssaken til alternativet --revprop. 15 For øyeblikket er libmagic støttebiblioteket som brukes til å oppnå dette.
No comments:
Post a Comment