Het SVN “execute” bit instellen in een Subversion repository met TortoiseSVN of commandoregel SVN

Ik heb een open-source-app die wordt gehost op code.google.com. Het is platformonafhankelijk (Linux/Windows/Mac). Ik heb de code in eerste instantie geüpload vanaf een WinXP-machine met TortoiseSVN en het lijkt erop dat geen van de “configure” batchbestanden die worden gebruikt voor de linux-build hun “execute” -bits hebben ingesteld.

Wat is de gemakkelijkste manier om deze in te stellen voor de bestanden die ze nodig hebben? Het gebruik van TortoiseSVN zou gemakkelijker zijn, veronderstel ik, maar als dat niet kan worden gebruikt, dan zou ik ook de opdrachtregel SVN op mijn Linux-machine kunnen gebruiken.


Antwoord 1, autoriteit 100%

Zo doet u het op de opdrachtregel:

for file in `find . -name configure`; do
  svn ps svn:executable yes ${file}
done

Of voor slechts één bestand (configureis hier de bestandsnaam):

svn ps svn:executable yes configure

Antwoord 2, autoriteit 24%

Met tortoise SVN is het vrij eenvoudig: je kunt meerdere bestanden selecteren (mogelijk afkomstig uit zoekresultaten, dus ze hoeven niet in dezelfde map te staan), selecteer “eigenschappen” in het TortoiseSVN-menu, voeg de benodigde eigenschap toe (er is een vervolgkeuzelijst met de meest gebruikte eigenschappen, in dit geval “svn:executable”) en stel de waarde in (in dit geval “*”). Als de gewijzigde bestanden worden vastgelegd en onder linux worden uitgecheckt, wordt het uitvoerbare bit ingesteld.

Als u meer dan één eigenschap tegelijk wilt instellen, kan het veiliger zijn (in geval van fouten) om eerst de eigenschappen correct in te stellen voor één bestand, ze naar een bestand te exporteren, alle benodigde bestanden te selecteren, de ” eigenschappen” menu en importeer de eerder opgeslagen eigenschappen.


Antwoord 3, autoriteit 8%

Gebruik op Unix {} om de resulset te adresseren:

find . -type f -name "*.bat" -exec svn propset svn:executable yes '{}' \;

Weet iemand waarom deze eigenschap “ja” als geldig argument vereist?
Nog een voorbeeld gevonden met ” in plaats van ja, werkt ook…


Antwoord 4, autoriteit 5%

find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;

Natuurlijk geldt hetzelfde voor .exe, enz.


Antwoord 5

Methode voor het herstellen van uitvoerbare machtigingen die verloren zijn gegaan tijdens het importeren van svn:

kopieer rechten van je originele bron die je gebruikte tijdens svn import (huidige map naar versie1):

find . -type f | xargs -I {} chmod --reference {} ../version1/{}

stel vervolgens svn:executable in voor alle uitvoerbare bestanden met het volgende shellscript:

for file in `find . -executable -type f`; do
  svn ps svn:executable yes ${file}
done

Other episodes