TortoiseSVN fichier manquant dans la mise à jour

12

Nous avons parfois eu un problème avec TortoiseSVN (je suppose que c'est Tortoise et non notre référentiel SVN), où un fichier sera archivé dans le référentiel (en faisant un repo-browser vous pouvez voir les fichiers là-bas), et existera pour la personne qui les a commis, mais lorsqu'une autre personne effectue une mise à jour, ces fichiers ne sont pas ajoutés à la copie de travail. Si je choisis ensuite "Copier dans la copie de travail ..." dans le navigateur de repo et tente une validation, les fichiers sont traités comme nouveaux pour moi et mon client essaie de les ajouter, ce qui donne une erreur. La mise à jour entraîne également une erreur (je ne sais pas comment reproduire cela, donc je ne sais pas ce qui provoquerait cela et je ne me souviens pas des erreurs exactes). Je dois ensuite supprimer les fichiers du référentiel et valider les fichiers comme nouveaux. Après ça,

Le référentiel est accessible via le protocole svn: //, à un serveur exécutant la version 1.4.6. Il est hébergé sur une machine Windows Server 2003 fonctionnant en tant que service Windows.

Le référentiel se présente comme suit:

[référentiel] / Code / [projets]
[référentiel] / Code / [Site Web] / * une page ici *
[référentiel] / Données / [fichiers de données divers]
[référentiel] / Références / [dlls / références]

Cela se produit presque exclusivement avec .aspx / .aspx.cs / .aspx.designer.cs, et généralement tous les 3 à la fois. Comme si une "page" entière n'était pas ajoutée à mon dossier. Cela s'est produit avec Visual Studio ouvert et exécutant la solution, et également sans Visual Studio ouvert non plus.

Quelqu'un a-t-il déjà vu cela et connaissez-vous la cause / solution?

nombre d'or
la source
1
Pourriez-vous publier la version de TortoiseSVN et comment votre SVN est hébergé (http: //, svn: //, local, etc.) et par quels moyens (Apache, IIS, VisualSVN, etc.), y compris tout autre numéro de version.
Richard Slater
1
Essayez également de recréer les répertoires de travail (créez-en simplement un supplémentaire) pour voir si quelque chose s'est mal passé lors de votre première vérification.
reconbot
1
Comme première étape de mise à niveau vers la dernière version de TSVN (1.6.3 en ce moment). Je pense qu'il y avait un bug lié dans 1.6.x qui a été corrigé dans la version 1.6.2.
Milen A. Radev
2
Nous rencontrons ce même problème avec le client TortoiseSVN 1.7 connecté à un référentiel Subversion 1.6. Y a-t-il une solution similaire quelque part?
JNappi

Réponses:

10

J'ai aussi parfois eu le problème décrit. Juste en ce moment, c'est arrivé à nouveau. Même situation: plusieurs fichiers ont été modifiés / ajoutés / supprimés / déplacés sur le serveur SVN à partir d'un client SVN A et le client SVN B a mis à jour sa copie de travail (à l'aide de Tortoise SVN). Après la mise à jour, certains des fichiers qui ont été ajoutés à partir de A ne sont pas présents dans la copie de travail de B, mais le navigateur du référentiel les affiche à l'emplacement correct sur le serveur SVN. La mise à jour avec Tortoise prétend toujours que tout est à la révision actuelle. Un "svn up" dans le dossier où les fichiers manquent indique également que tout est à la révision actuelle.

j'utilise

Écaille SVN 1.6.6, Build 17493 - 64 bits

Visual SVN 1.7 (intégration SVN dans Visual Studio 2008)

Edit: Cela semble être un problème connu, voici la solution: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2379518


la source
1
Pour toute autre personne: voici la solution directe: pour chacune des copies de travail gênantes, utilisez "Mettre à jour vers la révision" et définissez la profondeur de la copie de travail sur "Entièrement récursif".
coding_idiot
3

vous pouvez tester s'il s'agit de tortue ou de svn en utilisant les outils de ligne de commande. tapez 'svn up' dans le répertoire racine WC.

Comme vous dites que vous êtes sur 1.4.6, vous n'avez pas de problème avec les répertoires clairsemés. Avez-vous ignoré les fichiers dans les paramètres de votre client? Êtes-vous sûr que votre WC pointe vers l'URL correcte dans le référentiel et n'a pas été basculé vers une autre branche? (vous pouvez le voir dans les propriétés du dossier - il y a un onglet subversion)

Si vous faites «svn status» dans votre WC, vous devriez voir la liste des fichiers modifiés dans le répertoire du serveur.

gbjbaanb
la source
3

J'ai rencontré le même problème avec SVN 1.6.2 et 1.6.3 (ligne de commande, Tortoise et Subclipse). il semble donc que le problème soit lié au SVN lui-même. La solution de contournement suivante existe - essayez de passer à la caisse dans le même répertoire - il ajoute simplement les fichiers manquants.

al0
la source
1

J'ai également rencontré ce bogue avec Tortoise SVN avec au moins 1.6.2 par rapport à ce que j'utilise actuellement 1.6.5. "Get latest" n'obtiendra pas les fichiers du référentiel. J'ai dû supprimer le répertoire affecté et obtenir les dernières informations sur le répertoire parent pour recréer le répertoire et son contenu.

gbjbaanb, ce n'est certainement pas un cas de fichiers ignorés ou de branches commutées.


la source
1

Je n'ai pas été tout à fait en mesure de résoudre ce problème en utilisant les instructions du lien de Daniel, mais je conviens qu'il semble que ce soit un problème central avec la plupart des implémentations SVN dans Windows, à tout le moins.

Afin de résoudre mon problème de dossier manquant, mes étapes étaient les suivantes:

  1. "Mettre à jour vers la révision", en sélectionnant un numéro de validation avant que tout fichier du dossier ne soit modifié, ajouté ou supprimé, et assurez-vous de choisir "Entièrement récursif". (Cela provoquera une erreur étrange dans Tortoise. C'est prévu!)
  2. Exécutez un nettoyage.
  3. Mettez à jour le dossier à nouveau et vous devriez obtenir le dossier entier!

J'espère que cela aide quelqu'un d'autre là-bas.

Matt DeKrey
la source
0

Malheureusement, les réponses précédentes ci-dessus n'ont pas fonctionné pour moi. J'ai eu le même problème: un dossier sur lequel je travaillais contenait quelques objets non validés. Ce dossier a été mis à jour avec de nombreux objets par un autre utilisateur. Je pouvais voir les objets de cet utilisateur dans le référentiel, mais chaque fois que je faisais une mise à jour, je n'obtenais jamais les objets de cet utilisateur.

Le correctif qui a fonctionné consiste à utiliser TortoiseSVN Revert sur le dossier.

Allen
la source