Question

J'avais utilisé une Subversion pour mon contrôle de code source, combinée avec GIT à déployer (push) à Heroku. Mon modèle était: Mettre à jour la copie de travail locale du dernier maître au dépôt subversion à distance. Ensuite, faites git commit et git pousser Heroku (Git a été configuré pour ignorer des choses svn). Cette copie de travail je ne pousser à Heroku, j'ai eu un autre dossier de subversion pour faire le développement en direct, et engager dans le dépôt de la subversion à distance pour le suivi.

Je suis maintenant passé à git complètement. Je l'ai fait une importation complète de la subversion dans un nouveau dépôt git à distance. Je travaille avec succès sur ma copie de travail locale du git (origine), et en poussant des changements quand il me convient (aussi en collaboration avec un autre développeur, mais je gère essentiellement l'opération).

Ma question:

Je voudrais maintenant revenir à mon autre copie de travail git que j'avais déjà été utilise pour pousser à Heroku (qui a .svn / choses en elle aussi). Je pense simplement ajouter mon nouveau dépôt git comme une entrée dans le .git / config .. tirant les dernières modifications de ma nouvelle télécommande git, et pousser à heroku [origine], mais je me demande si elle va paniquer .

Il va essayer de fusionner et se confondre non? ET, même si la traction a travaillé, sera la heroku obtenir à distance confus au sujet d'une poussée qui leur origine dans une nouvelle git?

Je pourrais écraserait (supprimer) cette copie de travail (utilisé pour pousser à heroku de la subversion), et de faire un nouveau clone de mon nouveau dépôt git, puis heroku ajouter à la .git / config. Mais je suis préoccupé par pousser à heroku va encore l'amener à se confondre, puisque je l'habitude de pousser à partir d'une copie de travail différent.

Un conseil serait génial!

Merci d'avance!

Était-ce utile?

La solution

Si je vous comprends bien, vous voulez revenir à l'ancien dépôt SVN que votre copie de travail, et que vous voulez préserver l'histoire ancienne SVN?

Il y a deux options disponibles.

  1. Repoussez les changements récents du nouveau dépôt Git à Heroku, puis passer à l'ancien référentiel et tirer de Heroku. Cela vous amènera jusqu'à l'âge de dépôt à ce jour.

  2. modifier temporairement l'URL dans l'ancien fichier de configuration de référentiel pour pointer vers le chemin local du nouveau référentiel. Tirez sur les changements récents de là, puis revenir à l'URL Heroku lorsque vous avez terminé. Cela permettra également d'apporter votre ancien référentiel à jour.

La première option est la plus opportune, et le second est la longue inverse. De toute façon, vous aurez le même résultat net d'une mise à jour du référentiel local qui contient toute l'histoire. Le nouveau dépôt excédentaire peut être éliminé dans les deux cas.

Edit: Pour répondre à vos préoccupations quant à savoir si Heroku se soucie de l'origine de l'essai COMMIT, bref, pas le dépôt sur Heroku est un autre dépôt git qui accepte commits des utilisateurs authentifiés.

Tant que les informations d'identification sont correctes, le référentiel d'origine n'a pas d'importance. C'est la belle chose au sujet DVCS - il n'y a pas un contrôle ou un dépôt corruptible - Il est tout à fait possible pour vous de cloner maintenant de Heroku sur une autre machine et continuer à travailler à partir de là. Tant que vos informations d'identification sont les mêmes, l'histoire montrera tout et tout ce que vous engage pousser, mais ne se soucie pas de.

Si votre désir est d'utiliser simplement un référentiel propre pour travailler avec, le nouveau sera le favori. L'ancien peut être supprimé sans effets nocifs.

Pour le prouver - vérifier les hash SHA-1 pour une livraison dans les deux dépôts anciens et nouveaux, et vous verrez qu'ils sont identiques. Le hachage est unique pour tous les commits, et peut être utilisé pour vérifier l'intégrité du code à tout moment. Il n'y aura jamais plus d'un changement pour tout hachage donné.

  • Comme une note de côté, le dépôt est portable en ce qu'elle est entièrement autonome et peut être déplacé librement sur votre espace de stockage, ou même être utilisé sur le stockage externe tel qu'un lecteur USB.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top