¿Por qué le importa lo que está en el directorio de trabajo en los servidores de BitBucket? Mientras empuje los cambios estarán en el repositorio y serán visibles en la página de BitBucket.
EDITAR: Bien, voy a editar esto para que sea una respuesta útil.
Digamos que clonan uno de mis repositorios como django-hoptoad en BitBucket. Vas a tener una carpeta llamada django-hoptoad
en su máquina local y su contenido se verá algo como esto:
django-hoptoad/
|
+-- .hg/
|
+-- ... my code and other folders
Todos los datos sobre el propio repositorio se almacena en la carpeta .hg/
. Ahí es donde Mercurial guarda los datos sobre qué archivos se cambiaron en qué conjuntos de cambios y muchas otras cosas.
Se puede pensar en ello como esto (aunque es una simplificación excesiva):
django-hoptoad/
|
+-- .hg/
| |
| +-- data about changeset 1
| +-- data about changeset 2
|
+-- ... my code and other folders as they appear in changeset 2
Cuando se ejecuta hg pull
y no actualiza, se tira cualquier nuevo conjuntos de cambios en el repositorio:
django-hoptoad/
|
+-- .hg/
| |
| +-- data about changeset 1
| +-- data about changeset 2
| +-- data about changeset 3 (NEW)
| +-- data about changeset 4 (NEW)
|
+-- ... my code and other folders as they appear in changeset 2
Si no actualiza, ... my code and other folders
seguirá siendo equivalente a lo que está en changeset 2
, pero los otros conjuntos de cambios todavía están en el repositorio.
Cuando ejecuta hg update
Mercurial actualizará el ... my code and other folders
al contenido del último conjunto de cambios.
django-hoptoad/
|
+-- .hg/
| |
| +-- data about changeset 1
| +-- data about changeset 2
| +-- data about changeset 3
| +-- data about changeset 4
|
+-- ... my code and other folders as they appear in changeset 4
En realidad, esto significa que lo que pasa a estar en ... my code and other folders
no tiene que coincidir con lo que hay en el repositorio. Se podía eliminarlo y todos los conjuntos de cambios todavía estaría en el repositorio:
django-hoptoad/
|
+-- .hg/
|
+-- data about changeset 1
+-- data about changeset 2
+-- data about changeset 3
+-- data about changeset 4
Si cometió en este momento, sería crear un nuevo conjunto de cambios que básicamente dice "no hay archivos". Sin embargo, no tienes que comprometerte. Las personas aún pueden empujar y tirar porque el repositorio aún tiene todos los datos sobre los conjuntos de cambios.
Esto es casi seguro lo que BitBucket está haciendo. Nunca vas a iniciar sesión en los servidores de BitBucket, editaremos tu código y nos comprometeremos allí; solo vas a empujar/tirar/clonar. Eso significa que el ... my code and other folders
nunca se utilizará realmente, así que me imagino que Jesper lo tiene configurado para eliminarlo y ahorrar espacio en el disco.
Dado que hg update
solo afecta realmente al directorio de trabajo, y el directorio de trabajo en BitBucket nunca se usa, no necesita ejecutar hg update
después de presionar BitBucket.
Supongo que no lo explique lo suficiente. Hago mi codificación en mi máquina local. Cuando estoy satisfecho, hago "hg commit" en mi máquina local. Hasta ahora todo bien, pero ahora Bitbucket está en la imagen. Así que "hg push" para bitbucket. ¿Entonces no necesito "actualizar hg" en bitbucket? Si es así, ¿cómo hago eso? – chefsmart