J'utilise le client Tortoise pour vérifier/valider mes modifications sur SVN. Mais j'ai trouvé cela un peu difficile car je ne trouve pas la liste de tous les fichiers modifiés dans ma copie locale. Y a-t-il un raccourci ou quelque chose que j'ai négligé?
Je suis nouveau sur SVN. Pour info.
La commande "Vérifier les modifications" dans tortoise affichera une liste de tous les fichiers modifiés dans la copie de travail. "Valider" affichera également tous les fichiers modifiés (que vous pourrez ensuite valider). "Revert" affichera également les fichiers modifiés (que vous pourrez ensuite restaurer).
Je ne connais pas la tortue, mais avec Subversion to linux je taperais
svn status
Une recherche sur Google me dit que la tortue prend également en charge les commandos en ligne de commande, essayez l'état svn dans le dossier qui contient le référentiel svn.
Je n'ai pas pu svn status -q
travailler. En supposant que vous êtes sur une boîte Linux, pour voir uniquement les fichiers modifiés, exécutez: svn status | grep 'M '
Sous Windows, je ne sais pas trop ce que vous feriez, peut-être quelque chose avec 'FindStr'
La commande ci-dessous affichera les fichiers modifiés seuls dans les fenêtres.
svn status | findstr "^M"
Si vous voulez vraiment lister fichiers modifiés uniquement vous pouvez réduire la sortie de svn st en commençant par "M" qui indique un le fichier a été modifié. Je ferais ça comme ça:
svn st | grep ^M
svn status | grep 'M '
fonctionne très bien sur MacOSX.
Je viens de tester ça.
Si vous souhaitez uniquement les noms de fichiers et souhaitez également tous les fichiers ajoutés (A).
svn st | grep ^[AM] | cut -c9-
Remarque: Les 7 premières colonnes ont chacune un caractère de large suivi d'un espace puis du nom de fichier.
cela devrait le faire dans Windows: svn stat | trouver "M"
Comme dit, vous devez utiliser SVN Check for modification
dans l'interface graphique et tortoiseproc.exe /command:repostatus /path:"<path-to-version-control-file-or-directory>"
dans CLI pour voir les changements liés à la racine de <path-to-version-control-file-or-directory>
.
Malheureusement, mais cette commande n'affichera pas [~ # ~] toutes les [~ # ~] modifications locales, elle n'affiche que les modifications liées à la racine du répertoire demandé. Les modifications prises séparément, comme les extractions autonomes ou les répertoires externes orphelins dans le sous-répertoire racine, seront affichées comme Unversioned ou Nested et vous risquez de ne pas les valider/les rechercher .
Pour éviter une telle condition, vous devez soit appeler le tortoiseproc.exe /command:repostatus /pathfile:"<path-to-file-with-list-of-items-to-lookup-from>"
(voir la documentation détaillée sur la ligne de commande: https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-automation.html ), ou utilisez des applications/utilitaires/scripts 3dparty pour envelopper l'appel.
J'ai été écrit mon propre ensemble de scripts pour Windows pour automatiser l'appel à partir du Total Commander
: https://sf.net/p/contools/contools/HEAD/tree/trunk/Scripts/Tools/ToolAdaptors/totalcmd/README_EN.txt (recherchez TortoiseSVN
)
- Ouvre la boîte de dialogue d'état TortoiseSVN pour un ensemble de répertoires WC (s'ouvre toujours pour afficher les modifications non versionnées).
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:repostatus "%P" %S
- Ouvre les boîtes de dialogue de validation de TortoiseSVN pour un ensemble de répertoires WC (ne s'ouvre que si aucune modification de version n'est vide).
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:commit "%P" %S
Voir le README_EN.txt
pour les derniers détails (vous devez exécuter configure.bat
avant l'utilisation et copiez le reste des scripts sur vous-même comme call_nowindow.vbs
).
En utilisant Powershell, vous pouvez faire ceci:
# Checks for updates and changes in working copy.
# Regex: Excludes unmodified (first 7 columns blank). To exclude more add criteria to negative look ahead.
# -u: svn gets updates
$regex = '^(?!\s{7}).{7}\s+(.+)';
svn status -u | %{ if($_ -match $regex){ $_ } };
Cela comprendra les changements de propriété. Ceux-ci s'affichent dans la colonne 2. Il détectera également d'autres différences dans les fichiers qui s'affichent dans les colonnes 3-7.
Sources:
état svn: http://svnbook.red-bean.com/en/1.8/svn.ref.svn.c.status.html
Regex pour faire correspondre les résultats du statut svn: tilisation de powershell et svn pour supprimer les fichiers non versionnés
statut svn | grep ^ M listera les fichiers modifiés. M - signifie modifié :)