2010-04-15 4 views
0

MISE À JOUR: En essayant de reproduire ce problème une fois de plus pour répondre à vos questions je ne pouvais pas! Je peux seulement conclure que ma configuration initiale de Mercurial était problématique et/ou j'essayais peut-être de vérifier une compilation qui avait échoué avant la vérification. Soupir! Merci beaucoup pour votre aide. J'ai donné crédit pour l'aide sur la façon de faire un script. Je dois essayer cela pour des raisons générales.Mercurial Hg Clone échoue sur le projet C# avec GUID


salut tous, j'espère que vous pouvez m'aider :). J'essaie de voir si Mercurial serait un bon DCVS pour mon projet au travail, et je suis sûrement un débutant pour beaucoup de choses.

Nous avons une base de code assez grande en C# (Dotnet3.0 non 3.5, WindowsXP) et elle utilise la fonction GUID. J'avoue en savoir peu sur comment et pourquoi nous utilisons le GUID, mais je sais que je ne peux pas le toucher. Donc, quand j'essaye hg clone, il échoue à moins que je change le GUID dans le répertoire cloned (c.-à-d. Créer un nouveau GUID dans Visual Studio et puis coller ce nouveau GUID pour remplacer l'ancien). Pour moi, cela va complètement à l'encontre du but et de l'utilité des clones faciles et rapides. Cela rend également difficile tous les nombreux workflows qui nécessitent plusieurs clones.

Y a-t-il une solution de contournement ou y a-t-il quelque chose que je fais de mal? Comment puis-je simplifier et/ou supprimer ce problème?

Est-ce que Bazar rendrait cela plus facile?

Merci!

+1

Pourriez-vous clarifier: "la fonction GUID en C#" et ce que Hg vous dit quand le clone échoue? S'il n'y a qu'un Guid dans votre code, je ne peux pas imaginer comment Hg pourrait être offensé quand vous clonez un dépôt. – jan

+0

Semble que vous avez besoin de savoir comment et pourquoi vous utilisez le "GUID" - pourrait aider à comprendre ce problème. – Paddy

Répondre

1

Vous pouvez probablement le faire dans un hook de mise à jour. Je ne suis pas scripteur fenêtres, mais si vous pouvez écrire un script Powershell qui appelle [system.guid].newguid() et il remplace dans ce fichier vous pouvez utiliser un crochet comme:

[hooks] 
update=c:\scripts\replace-guid-in-file.PS1 path\to\file\with\guid 

Quel que soit le fichier que vous changez ces GUIDs en devrait probablement être non traqué (mettez-le dans votre .hgignore) ou vous allez vous retrouver avec beaucoup de changements guidés accidentels commis à la repo.

0

Ce GUID est-il quelque chose que l'éditeur crée dans les fichiers de projet? Dans ce cas, ne vérifiez pas dans les fichiers de projet, ou seulement ceux qui ne contiennent pas le GUID.

Questions connexes