2011-05-11 10 views
5

que se han encontrado con este error al intentar empujar un subrepository a Bitbucket:subrepositories con bitbucket

D:\Work\agile.crm.framework>hg push 
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7 
c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cace 
rts config setting) 
http authorization required 
realm: Bitbucket.org HTTP 
user: the_drow 
password: 
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7 
c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cace 
rts config setting) 
pushing to https://[email protected]/the_drow/agile.crm.framework 
pushing subrepo Logging to https://[email protected]/the_drow/agile.crm.fra 
mework/Logging 
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7 
c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cace 
rts config setting) 
abort: HTTP Error 404: NOT FOUND 

he encontrado con este link que describe la forma de resolver el problema, pero no entiendo qué hacer.
¿Debo colocar mi subrepositorio de registro en D:\Work\?
¿Qué debería hacer exactamente con los subtramos mercuriales? ¿Esto me permitirá clonar localmente?

EDIT: a lo solicitado, he aquí el contenido de mi archivo .hgsub

Logging = Logging 
+0

¿Puedes publicar el contenido de tu archivo '.hgsub'? –

+0

Creo que la respuesta que no sea la que marcó como correcta es la mejor. No debería tener que decidir dónde colocar sus repositorios según las limitaciones de algún sitio. Simplemente adapte las limitaciones particulares de ese sitio con una regla de re-escritura de propósito especial. – Omnifarious

Respuesta

13

Como se señaló en el enlace que usted envió, "Tienes que hacer las subrepositories como hermanos del repositorio principal. "

Así que en BitBucket, necesita la siguiente estructura:

https://bitbucket.org/the_drow/agile.crm.framework 
https://bitbucket.org/the_drow/Logging 

A continuación, sus .hgsub dentro agile.crm.framework necesidades para contener lo siguiente:

Logging = ../Logging

+2

Entonces, ¿tengo que abrir otro repositorio? Eso un poco desafía el propósito aquí. –

+6

@the_drow: Agregar un subrepo implica que el subrepo es un proyecto separado [project | biblioteca | lo que sea] con su propia historia. Si no tiene la intención de utilizar su repositorio 'Logging' en múltiples proyectos, entonces no debería ser un subrepo en primer lugar. Si desea compartirlo entre muchos proyectos, entonces necesita su propio espacio. –

9

voy a topar un viejo pregunta porque creo que tengo una mejor solución. Entiendo por qué @the_drow tiene problemas con la respuesta original aceptada ya que con Logging = ../Logging su máquina local tiene que tener el subrepo Logging como un par con el contenedor/repo maestro. Este tipo de rechaza el propósito de los subrepos desde el punto de vista de una organización. Sin embargo, si se utiliza el subpaths feature, puede obtener Mercurial volver a escribir la URI para que el empuje:

external/my_subrepo = external/my_subrepo 

[subpaths] 
([https://|ssh://[email protected]])bitbucket\.org/moswald/my_project/external/my_subrepo = \1bitbucket.org/moswald/my_subrepo 

Ahora mi copia local del repositorio my_subrepo sub se almacena dentro my_project como se esperaba, pero cuando empujar a Bitbucket , se desvía a lo real. De hecho, puede usar esa función de reescritura para apuntar prácticamente a cualquier parte, ya que Mercurial entiende a Git y SVN. Tengo más de unos pocos repositorios Bitbucket que tienen subrepos de otros autores que usan Github.

+1

¡Cuidado! Esto me dejó perplejo: ¡el período se escapó solo en la primera URL! Izquierda del signo igual: bitbucket \ .org - Derecha del signo igual: bitbucket.org – martind2112

+0

Buen punto. Sí, esto fue complicado para ser exactamente correcto. : +1: – moswald

Cuestiones relacionadas