Comment puis-je ajouter de nouveaux fichiers à SVN
Je suis en utilisant un ORM qui génère de grandes quantités de fichiers à partir d'une CLI. Est-il un moyen facile de courir le svn add
sur tous les fichiers dans un répertoire qui apparaissent comme ?
quand je lance svn status
?
Modifier Ces fichiers existent dans une arborescence de répertoires ainsi, l'ajout de *
pour un répertoire ne fonctionnera pas.
- edit: alors offrir de multiples chemins d'ajouter, comme:
svn add dir1/* dir2/* dir3/*
ou comme beaucoup l'ont mentionnégrep
la sortie desvn stat
à partir de la racine et de la pipe àcut
ouawk
puis à ajouter. - Si vous êtes sur Windows, vous pouvez toujours utiliser TortoiseSVN pour rendre la vie plus facile.
Vous devez vous connecter pour publier un commentaire.
il vous suffit de faire un
svn add path/to/dir/*
vous obtiendrez d'avertissement au sujet de ce qui existait déjà dans le contrôle de version, mais il va ajouter de tout ce qui n'est pas.Cela va ajouter tous les inconnus (sauf ignoré) les fichiers dans l'arborescence de répertoire spécifié:
Cela va ajouter tous les inconnus (sauf ignoré) des fichiers dans le répertoire courant et ci-dessous:
De référence, ces sont très semblables questions.
Ces semblent fonctionner le mieux pour moi. Ils travaillent également avec des espaces, et de ne pas ajouter de nouveau les fichiers ignorés. Je n'ai pas les voir inscrit sur aucune des autres réponses que j'ai vu.
ajoutant:
retrait:
Edit: Il est important de ne PAS utiliser "ajouter *" si vous voulez garder vos fichiers ignorés, sinon tout ce qui a été ignorée sera ajouté.
xargs
qui est livré avec MacOS ne semble pas accepter le-d
drapeau.sed 's/? //'
vous pouvez utiliserawk {'print $2'}
Prises à partir de quelque part sur le web, mais je l'ai utilisé pendant un certain temps et il fonctionne bien.
Si
svn add whatever/directory/*
ne fonctionne pas, vous pouvez le faire le difficile chemin:La solution
ne fonctionne pas avec les espaces. Au lieu de cela, on peut utiliser
(on dirait que le nombre de grandes blancs est différent sur mon système, il suffit de régler ça).
-I
utilisation a bien fonctionné pour moi sur MacOS X.Vous devriez être en mesure d'exécuter:
Il peut se plaindre sur les fichiers qui sont déjà sous contrôle de version, mais il sera également ajouter de nouveaux.
Vous pouvez vouloir penser à si oui ou non vous voulez vraiment ajouter ces fichiers générés contrôle de version, cependant. Ils peuvent être considérés comme dérivés des artefacts, un peu comme le code compilé, et donc ne devrait pas être ajouté. Bien sûr, c'est à vous, mais c'est quelque chose à penser.
devrait faire le travail. Assurez-vous de:
par la suite 🙂
Dans certaines coquilles, comme les poissons vous pouvez utiliser le
**
d'expansion pour le faire:Ceci a été basé sur markb de réponse... et un peu de chasse sur internet. Il semble laid, mais il semble fonctionner pour moi sur OS X (y compris les fichiers avec des espaces).
Ce ajouter tous les fichiers non versionnés, même s'il contient des espaces
svn status | awk '{$1=""; print $0}' | xargs -i svn add "{}"
J'aime ces commandes, car ils utilisent les
svn status
, pour rechercher la ou des fichiers manquants, qui respecte les fichiers qui sont ignorés.Parmi bash one-liner je pense que c'est la plus jolie:
Il va ajouter de nouveaux fichiers et de supprimer tous les fichiers manquants. À utiliser avec prudence, peut-être de mettre un alias pour un accès rapide.
NOTE pour Mac: dans xargs
-r
est une extension GNU: il pourrait ne pas être pris en charge. Dans ce cas il suffit de l'enlever et d'ignorer les avertissements quand il n'y a pas de fichiers à ajouter ou à supprimerJe suis un newbie de version svn de contrôle. Cependant, pour le cas lorsque des personnes veulent ajouter des fichiers sans ignorer les déjà défini les propriétés svn:ignore, j'ai résolu le problème comme ci-dessous
Les étapes ci-dessus ont travaillé.