2011-08-31 3 views
5

Después de trabajar en un proyecto pequeño versionado con Hg por un tiempo, he verificado los repositorios Mercurial local y central hoy. Localmente no tengo ningún error o advertencia y "el repositorio usa el formato de registro 1". En el repositorio central, sin embargo, obtengoMercurial: cómo deshacerse de "warning: xxxx usa el formato de revlog 0"?

repository uses revlog format 1 
checking changesets 
checking manifests 
crosschecking files in changesets and manifests 
checking files 
warning: `x' uses revlog format 0 
warning: `xx' uses revlog format 0 
warning: `xxx' uses revlog format 0 
... 

(13 advertencias de este tipo en total). ¿Puedo deshacerme de estas advertencias?

+3

Parece que tiene un * muy * repo de edad. Cuando obtienes ningún * error * form 'hg verify', puedes clonarlo y usar el clon en lugar del actual. – Rudi

+0

@Rudi, sería genial si sus respuestas fueran verdaderas en lugar de comentarios. Mucha gente hace preguntas que muestran cero respuestas en la prioridad de la página principal, pero esta ya tuvo una excelente respuesta de usted. Además, si el interlocutor obtiene lo que necesita de un comentario, es menos probable que vuelva para elegir otra respuesta más adelante, lo que distorsiona la estructura de incentivos. –

+0

@ Ry4an No respondo cuando estoy adivinando ciegamente. Más abajo encontré el 'clone --pull' no el enfoque de conversión, por lo que dar una respuesta que diga' hg clone' en el servidor habría sido incorrecto. – Rudi

Respuesta

2

Si clona un repositorio con --pull, se recreará como el último tipo de la versión de Mercurial que está ejecutando puede leer/escribir. Sin --pull, los enlaces duros se utilizan para los archivos de datos antiguos.

Así en el servidor de ejecución:

hg clone --pull existingrepo newrepo 
mv existingrepo was-existingrepo 
mv newrepo existingrepo 
+0

Gracias Ry4an y Rudi! – texnic

1

creo que también he encontrado otra manera. He convertido el repositorio de Hg a Hg usando Convert extension. El repositorio ahora parece tener el formato 1, todos los archivos.

+0

Tendría cuidado con esto. Convertir puede cambiar los hash de revisión, aunque imagino que no lo hará si no cambias nada más. – Kevin

0

He tenido éxito creando un clon del repositorio lleno de errores en el punto del error y luego tirando los contenidos del repositorio lleno de errores al nuevo clon.

Suponiendo que el error comienza a revisión 170:

hg clone -r 170 damagedRepo newRepo 
cd newRepo 
hg pull ../damagedRepo 
Cuestiones relacionadas