Afrekenen Eén bestand van Subversion

“Het is niet mogelijk om een ​​enkel bestand te bekijken. Het beste niveau van kassa dat u kunt doen, is op het niveau van de directory.”

Hoe kan ik dit probleem rondbrengen bij het gebruik van Subversion?

We hebben deze map in subversion waar we al onze afbeeldingen bewaren. Ik wil gewoon één bestand (afbeelding) uitchecken. Deze map is erg groot en heeft een ton van andere dingen die ik nu niet nodig heb.


Antwoord 1, Autoriteit 100%

Het eenvoudige antwoord is dat u svn exporthet bestand exporteert in plaats van het controleren.

Maar dat is misschien niet wat je wilt. Misschien wilt u in het bestand werken en het weer inchecken, zonder dat GB van Junk u niet nodig heeft, u niet nodig hebt.

Als u Subversion 1.5+ heeft, doe dan een dunne uitcheck:

svn checkout <url_of_big_dir> <target> --depth empty
cd <target>
svn up <file_you_want>

Voor een oudere versie van SVN, kunt u profiteren van het volgende:

  • Afrekenen De map met een revisie terug in het verre verleden, toen het minder vol met rommel was, heb je niet nodig.
  • Werk het gewenste bestand bij, om een ​​gemengde revisie te maken. Dit werkt zelfs als het bestand niet bestond in de revisie die u hebt uitgecheckt.
  • WINST!

Een alternatief (bijvoorbeeld als de map te veel rommel heeft van de herziening waarin het is gemaakt) is om een ​​URL- & GT te doen; URL-kopie van het bestand dat u wilt op een nieuwe plaats in de repository (effectief dit is een werkende tak van het bestand). Bekijk die map en doe uw modificaties.

Ik weet niet of u uw gewijzigde kopie vervolgens volledig in de repository kunt samenvoegen zonder een werkkopie van het doelwit – ik heb nooit nodig. Zo ja, doe dat dan.

Zo niet, dan moet u misschien nog steeds iemand anders vinden die wel de hele directory heeft uitgecheckt en deze krijgt om het te doen. Of misschien met de tijd dat je je modificaties hebt gemaakt, zal de rest zijn klaar met downloaden …


Antwoord 2, Autoriteit 28%

Probeer svn exportin plaats van svn checkout. Dat werkt voor afzonderlijke bestanden.

De reden voor de beperking is dat checkouteen werkkopie creëert, die meta-informatie bevat over repository, revisie, attributen, enz. Die metadata is opgeslagen in subdirectories genaamd ‘.svn’. En enkele bestanden hebben geen subdirectories.


Antwoord 3, Autoriteit 13%

Gebruik svn catof svn export.

Daarvoor hoef je de werkmap niet op te halen, maar je kunt geen veranderingen plegen die je maakt. Als u wijzigingen moet aanbrengen en u plegen, hebt u een werkdirectory nodig, maar u hoeft het niet volledig te halen. Afrekenen De revisie waarbij de map nog steeds / bijna leeg was en vervolgens ‘SVN Cat’ gebruikt om het bestand van de kop te extraheren.


Antwoord 4, Autoriteit 3%

Als u ReadMe.txt in uw wilt bekijken
Repository zonder het te controleren:

$ svn cat
http://svn.red-bean.com/repos/test/readme.txt
Dit is een README-bestand. Je moet lezen
dit.

TIP:
Als uw werkkopie verouderd is
(of u hebt lokale wijzigingen) en
je wilt de hoofd revisie van een
Bestand in uw werkkopie, SVN CAT
zal het hoofd automatisch halen
Herziening wanneer u het een pad geeft:

$ cat foo.c
Dit bestand is in mijn plaatselijke
werkkopie en heeft veranderingen die
Ik heb gemaakt.

$ svn cat foo.c
Laatste revisie vers
van de repository!

bron


Antwoord 5, Autoriteit 3%

U kunt het in twee stappen doen:

  1. Afrekenen Een lege SVN-repository met alleen-informatie:

    $ cd /tmp
    $ svn co --depth empty http://svn.your.company.ca/training/trunk/sql
    
  2. Voer svn upom het opgegeven bestand bij te werken:

    $ svn up http://svn.your.company.ca/training/trunk/sql/showSID.sql
    

Antwoord 6, Autoriteit 2%

Een TortoiseSVN gelijkwaardige oplossing van de geaccepteerde antwoord (ik had dit geschreven in een intern document voor mijn bedrijf als we nieuw zijn de aanneming van SVN) volgt. Ik dacht dat het nuttig zou zijn om hier te delen zijn ook:

Het controleren van een enkel bestand:
Subversion ondersteunt geen checkout van een enkel bestand, het ondersteunt alleen kassa van directory structuren. (Referentie: http://subversion.tigris.org/faq.html#single -file-checkout ). Dit is omdat bij elke map die wordt gecontroleerd als een werkend exemplaar, de metagegevens over de aanpassingen / bestandsrevisies wordt opgeslagen als een interne verborgen map (SVN / _svn). Dit is momenteel niet (v1.6) ondersteund voor één bestand.

Alternate aanbevolen strategie: Je moet de kassa directory gedeelte slechts een keer te doen, na die u direct kunt gaan en afrekenen van uw losse bestanden. Doe een schaars kassa van de bovenliggende map en directory structuur. Een schaars kassa is in principe het controleren van alleen de mapstructuur zonder het vullen van de inhoud van bestanden. Dus u de kassa alleen de directory structuur en hoeft niet checkout alle bestanden als de zorg was.
Referentie: http://tortoisesvn.net/docs/release/TortoiseSVN_en/ tsvn-dug-checkout.html

Stap 1 : Ga verder met repository browser

stap 2 . Klik met de rechtermuisknop de bovenliggende map in de repository met alle bestanden die u wenst te werken aan en Select Checkout

Stap 3 : Binnen nieuw pop-up venster, ervoor te zorgen dat de kassa directory wijst naar de juiste locatie op uw lokale PC. Er zal ook een dropdown menu met het label “checkout diepte” te zijn. Kies “Alleen dit item” of “Immediate kinderen, inclusief mappen” afhankelijk van uw behoefte. Tweede optie wordt aanbevolen als, als je wilt werken aan geneste map, kunt u direct de volgende keer gaat u anders moet je deze hele procedure opnieuw te volgen voor de geneste map.

Stap 4 : de bovenliggende map (s) moet nu beschikbaar zijn binnen uw lokaal gekozen map en wordt nu bewaakt met SVN (een verborgen map “.svn” of “_svn” te zijn moet nu Cadeau). Binnen de repository nu met de rechtermuisknop op het bestand dat u wilt alleen te hebben uitgecheckt en selecteer de “Update naar revisie” optie. De enkel bestand kan nu worden gewerkt en checkten terug in de repository.

Ik hoop dat dit helpt.


Antwoord 7

Er is een update voor het geval dat wat je echt nodig hebt kan worden gedekt door het hebben van het bestand opgenomen in een kassa van een andere map.

Sinds SVN 1.6 die u kunt maken bestand externen , een soort van SVN koppelingen. Het betekent dat je een andere map met versiebeheer dat een enkel bestand bevat kan hebben. Het plegen van wijzigingen aan het bestand in een kassa van deze map is ook mogelijk.

Het is heel simpel, de kassa van de map die u wilt het bestand op te nemen, en gewoon een woning aan de map

toe te voegen

svn propedit svn:externals .

met content, zoals deze:

file.txt /repos/path/to/file.txt

Nadat u deze plegen, het bestand zal verschijnen in de toekomst kassa’s van de map. In principe werkt het, maar er zijn enkele beperkingen, zoals beschreven in de documentatie gekoppeld hierboven.


Antwoord 8

cd C:\path\dir
svn checkout https://server/path/to/trunk/dir/dir/parent_dir--depth empty
cd C:\path\dir\parent_dir
svn update filename.log

(Edit filename.log)

svn commit -m "this is a comment."

Antwoord 9

Ga naar de repo-browser met de rechtermuisknop op het bestand en gebruik ‘Opslaan als’, ik ben met behulp van TortoiseSVN al.


Antwoord 10

Steve Jessops antwoordwerkte niet voor mij. Ik heb de helpbestanden voor SVN gelezen en als je alleen een afbeelding hebt, wil je die waarschijnlijk niet opnieuw inchecken, tenzij je Photoshop gebruikt, dus exporterenis een betere opdracht dan uitchecken omdat er geen versie van is (maar dat is klein).

En de –depthARG zou niet leegmoeten zijn, maar bestandenom de bestanden in de directe directory te krijgen. Je krijgt dus alle velden, niet alleen de ene, maar leeggeeft nietsterug uit de repository.

svn co --depth files <source> <local dest>

of

svn export --depth files <source> <local dest>

Wat de andere antwoorden betreft, laat katje de inhoud lezen die alleen goed is voor tekst, niet voor afbeeldingen van alle dingen.


Antwoord 11

Ik zou er gewoon doorheen bladeren en het enkele bestand exporteren. Als je HTTP-toegang hebt, gebruik dan gewoon de webbrowser om het bestand te vinden en het te pakken.

Als je het er weer in moet krijgen nadat je het hebt bewerkt, kan dat iets vervelender zijn, maar ik weet zeker dat er een functie voor svn importis…


Antwoord 12

Doe zoiets als dit:

mkdir <your directory>/repos/test
svn cat http://svn.red-bean.com/repos/test/readme.txt > <your directory>/repos/test/readme.txt

Het idee is eigenlijk om de map te maken waar je het bestand van SVN wilt halen.
Gebruik de opdracht svn caten stuur de uitvoer om naar hetzelfde bestand met dezelfde naam. Standaard dumpt de kat informatie op stdio.


Antwoord 13

Als je alleen een bestand wilt zonder revisie-informatie, gebruik dan

svn export <URL>

Antwoord 14

Met Subversion 1.5 wordt het mogelijk om (alle) bestanden van een directory uit te checken zonder subdirectories uit te checken (de verschillende — depth flags). Niet helemaal waar je om vroeg, maar een vorm van ‘minder dan alles’.


Antwoord 15

Met behulp van de spaarzame check-out-techniek KUNT u een bepaald bestand uitchecken dat al is uitgecheckt of bestaat… met een simpele truc:

Na het uitchecken van het hoogste niveau van uw repository met de optie ‘Alleen dit item’, MOET u in Windows Verkenner eerst met de rechtermuisknop op het bestand klikken dat u moet bijwerken; kies Repo Browser in het contextmenu; zoek dat bestand OPNIEUW in de repositorybrowser en klik met de rechtermuisknop. U zou nu het “item bijwerken naar revisie” in het contextmenu moeten zien.

Ik weet niet zeker of het een ongedocumenteerde functie is of gewoon een bug. Het kostte me een lange na-werkuren om eindelijk deze truc te vinden. Ik gebruik TortoiseSVN1.6.2.


Antwoord 16

Ik wilde een enkel bestand uitchecken in een map die geen deel uitmaakte van een werkkopie.

Laten we het bestand op de volgende URL ophalen: http://subversion.repository.server /repository/module/directory/mijnbestand

svn co  http://subversion.repository.server/repository/module/directory/myfile /**directoryb**

Dus ik checkte de gegeven map met het doelbestand dat ik naar een dummy-map wilde gaan (zeg etcb voor de URL die eindigt op /etc).

Vervolgens heb ik het bestand .svn/entriesgeleegd uit alle bestanden van de doelmap die ik niet nodig had, om alleen het bestand achter te laten dat ik wilde. In dit .svn/entries-bestand heb je een record voor elk bestand met zijn attributen, dus laat alleen het record over het bestand dat je wilt ophalen en opslaan.

Nu hoeft u alleen maar ”.svn” te kopiëren naar de map die een nieuwe “werkkopie” zal zijn. Dan hoef je alleen maar:

cp .svn /directory
cd /directory
svn update myfile

Nu staat de directory directoryonder versiebeheer. Vergeet niet de directory directorybte verwijderen die slechts een ”tijdelijke werkkopie” was.


Antwoord 17

Omdat geen van de andere antwoorden voor mij werkte, deed ik het gebruik van deze hack:

$ cd /yourfolder
svn co https://path-to-folder-which-has-your-files/ --depth files

Hiermee wordt een nieuwe lokale map gemaakt met alleen de bestanden van het externe pad.
Dan kunt u een symbolische link doen naar de bestanden die u hier wilt hebben.


Antwoord 18

Dit probleem is gedekt door:

http://subversion.tigris.org/issues/show_bug.cgi ? id = 823

Er is een script bijgevoegd waarmee u een enkel bestand van SVN kunt bekijken, wijzigingen aanbrengt en de wijzigingen kunt verbinden met de repository, maar u kunt “SVN UP” niet uitvoeren om de rest van de map te controleren. Het is getest met SVN-1.3, 1.4 en 1.6.


Antwoord 19

Als u gewoon het bestand wilt exporteren en u het later niet hoeft bij te werken, kunt u het doen zonder SVN-opdrachten te gebruiken.

Gebruik TortoiseSVN-repository Browser , selecteer het bestand, met de rechtermuisknop en selecteer vervolgens “kopiëren URL naar klembord “. Plak die URL naar uw browser en na inloggen moet u worden gevraagd met de download-download.

Op deze manier kunt u ook de gewenste revisie selecteren en een oudere versie van het bestand downloaden.

Merk op dat dit geldig is als uw SVN-server een webinterface heeft.

Other episodes