windows - Hvordan sletter jeg filer baseret på subversion?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en mappe med navnet 'y', der ikke holdes i versionskontrol. Jeg har en mappe 'x', der er under versionskontrol. Jeg vil kopiere y til x, for så kan jeg bruge kommandoen Tortoisesvn Check for Modifications på mappen x


Jeg kan så antage, at hver fil/mappe, der læses Non-versioned eller Ignored, kan slettes sikkert. Siden mit toilet har arbejdet fint i et år uden dem.


Hvordan får jeg en liste over filer markeret med Subversion som tilføjet for at oprette mit batch script?


Opdater.



Jeg har fået ret langt, jeg tror jeg bare har brug for en måde at automatisere dette på.


Jeg kopierede y til x. Jeg kørte check for ændringer. Jeg kan højreklikke på dialogen og kopiere stier til udklipsholder. Jeg vælger kun de Unversioned eller ignorerede filer.


Jeg indsætter stierne i en batchfil. Jeg bruger nogle find og erstatter magi for at skabe dette.


XCOPY www.root* www.root.backup /I /Q /R /S /E
CD www.root
DEL "Appraisals*.*" /q /s
DEL "jobsBackup*.*" /q /s
DEL "NewPortabilityBACKUP*.*" /q /s
DEL "FooterCodes*.*" /q /s
DEL "QLCommercial*.*" /q /s
DEL "imagesDiscard*.*" /q /s
DEL "Dup SH Pages*.*" /q /s
DEL "ExtensionRequest*.*" /q /s
DEL "ExtFile*.*" /q /s
DEL "AdInclude*.*" /q /s
DEL "BioInclude*.*" /q /s
DEL "ContactInclude*.*" /q /s


Opdatering # 2



Jeg arbejder bedre med analogier og eksempler, så her er scenariet og hvad jeg vil have resultatet.


Vær venlig at forestille mig, at jeg har det meget enkle bagagerum i mit repo. Den har kun en fil code.txt Jeg foretager mine ændringer til den fil, forpligter dem tilbage til repo. Efter ændringer er forpligtet til repo, eksporterer jeg kun denne fil fra repo til Produktion.


Forestil dig nu, at nogle andre udviklere kommer sammen og ikke snakker med mig. De kopierer direkte ud til produktionsserveren alle slags filer.


copy of code.txt

bob's copy of code.txt\_backup

copy of copy of copy of bob's copy of code.txt\_backup.backup


Nu Forestil dig, jeg indser dette, og beslutter at beskytte deres kode i underverden. Jeg tilføjer det til min repo og forpligter. Nu over tid indser jeg, at copy of copy of copy of bob's copy of code.txt\_backup.backup faktisk er en del af produktionen, og de to andre filer er affald.


Jeg sletter filerne copy of code.txt, bob's copy of code.txt\_backup fra min toilet og forpligter. Jeg laver også en lille ændring til code.txt. Jeg forpligter mig.


Nu når jeg sammenligner med tidligere revision og udfører en eksport, vil Tortoise eksportere den ændrede fil (er).


Så nu har jeg to filer forældreløse på produktionen. Jeg vil have et script til at slette dem fra produktion baseret på, at de ikke er i HEAD OF Subversion.


Forestil dig nu, om du havde 5300 filer og mapper.
.... Puha.

Bedste reference


Hvis jeg forstår dit problem korrekt, behøver du kun at kopiere indholdet af y til check-out x.


Derefter skal du åbne x med Windows Explorer. Da du har tortoise svn installeret på din pc, vil de filer, der ikke er under version, blive markeret med et blåt ikon, dem, der er ændret med et rødt ikon, og dem, der ikke er ændret med et grønt ikon.


Er det hvad du leder efter?


EDIT


Jeg havde lige en anden ide:



  1. Opret en kopi af Y.

  2. Loop gennem alle filer f af X.

  3. Slet alle f i Y.



I sidste ende vil Y indeholde filerne ikke i X, hvilket er hvad du vil, nej? Derefter kan du slette dem fra X efter at have tilføjet Y til X.