SVN: Comment savoir dans quelle révision d'un fichier a été supprimé?
Étant donné que je suis en utilisant svn en ligne de commande sur Windows, comment trouver le numéro de révision, dans laquelle un fichier a été supprimé? Sur Windows, il n'y a pas de fantaisie comme grep et je tente d'utiliser la ligne de commande uniquement, sans TortoiseSVN. Merci à l'avance!
EDIT:
- J'ai vu quelques posts, comme examen de l'histoire de fichiers supprimés mais il n'a pas répondu à ma question.
- Est-il un moyen autre que svn log -v url > le journal.et de recherche avec le bloc-notes?
- stackoverflow.com/questions/401331/...
- J'ai vu qu'en fait, mais vraiment pas une réponse pour moi. Merci quand même.
- utilisation
svn log -v url > log.out
à la sortie les détails de la révision puis sur rechercher dans le journal.l'aidefind
ou même le bloc-notes. Aussi une version de grep pour windows n'est pas difficile à trouver. - Grâce Lynch. J'ai considéré que trop. Regarde encombrant pour moi 🙂
- réponse de grandes œuvres.
Vous devez vous connecter pour publier un commentaire.
Installer Cygwin.
J'utilise ceci:
où
Cela vous donnera les révisions pour toutes les actions (ajouter, supprimer, supprimer, modifier) concernant le fichier, mais avec un simple tweak avec
grep
vous pouvez obtenir les révisions seulement pour la suppression.(Évidemment, --limit est optionnelle, mais généralement, vous avez un aperçu sur la façon de profondeur, le besoin de recherche qui vous gagne certaines performances.)
Le journal est l'endroit à regarder. Je sais que vous ne voulez pas entendre la réponse, mais c'est là que vous devez chercher les fichiers supprimés dans le SVN.
La raison en est simplement qu'un fichier supprimé n'est pas visible après il a été supprimé. Le seul endroit pour trouver le sujet de son existence que ce soit dans les journaux, ou par l'extraction d'une révision antérieure avant qu'il soit supprimé.
La façon la plus simple que je connaisse pour faire face à ce problème est de s'éloigner de la ligne de commande, et l'utilisation d'un outil graphique comme TortoiseSVN.
TortoiseSVN liens lui-même dans la norme de l'Explorateur de fichiers de Windows, il est donc très facile à utiliser. Dans le contexte de la réponse à cette question, vous pourrez toujours l'utiliser pour regarder les journaux, mais il devient beaucoup plus rapide exercer:
Navigateur pour le SVN dossier que vous souhaitez examiner. Puis cliquez-droit sur l'icône de dossier et sélectionnez TortoiseSVN -> Afficher les Journaux dans le menu contextuel.
Vous pourrez maintenant obtenir une fenêtre montrant toutes les révisions ont été faites dans ce dossier. En particulier, il est facile de voir les révisions qui ont eu des ajouts et des suppressions, parce que la liste comprend un ensemble d'icônes d'Action pour chaque révision. Vous pouvez double-cliquer sur une révision pour obtenir une liste des fichiers qui ont été modifiés (ou directement dans une vue diff si un seul fichier a été modifié),
De sorte que vous pouvez facilement voir les révisions qui ont eu des suppressions, et vous pouvez rapidement vous cliquez sur eux pour savoir quels fichiers ont été impliqués. C'est vraiment facile.
Je sais que vous vous dites à propos de la ligne de commande, mais pour les tâches administratives comme ça, un navigateur graphique ne fait vraiment sens. Il est beaucoup plus rapide pour voir ce qui se passe par rapport à essayer de lire à travers les pages de texte cryptique (peu importe comment bien versé vous êtes à la lecture de ce texte).
grep
et mêmebash
. Maintenant, vous pouvez -- sur votre PC -- faire toutes les choses que l'Unix jockeys n'. Vous pouvez également installer Cygwin qui installe un environnement de type Unix complet sur votre PC. Cela inclut la ligne de commande de Subversion, grep, et bash. J'ai presque toujours installer Cygwin sur mon PC Windows -- et la plupart du temps, je viens de vivre dans l'environnement Cygwin. PS: Ne partagez pas votre copie de travail avecsvn
sur WIndows et Cygwin. Il peut être salissant.Cette question a été publié et a répondu il y a quelques temps.
Dans cette réponse, je vais essayer de montrer, d'une manière souple pour obtenir les informations de la demande et de l'étendre.
Dans cygwin, utilisez
svn log
en combinaison avecawk
svn log ${REPO_URL} -v --search "${FILENAME}"
demande svn log pour un journal détaillé contenant ${nom de fichier}. Cela réduit le transfert de données.awk
.awk
obtient${FILENAME}
transmises par le biais d'-v
dans le varvar
avec motif de recherchevar="^ [D] ${FILENAME}$"
awk
programme/^r[0-9]+/{rev=$1}
attribue le numéro de révision derev
si la ligne correspond à/^r[0-9]+/
.^ [D] ${FILENAME}$
awk imprime la stockées numéro de révisionrev
et de la ligne:$0 ~ var {print rev $0}
si vous êtes intéresse pas seulement à la suppression du fichier, mais aussi la création, la modification, le remplacement, la modification
D
dansvar="^ [D] ${FILENAME}$"
àDAMR
.Le tableau suivant vous donne tous les changements:
Et si vous êtes intéressé dans le nom d'utilisateur, la date et l'heure: