¿Cómo solo comprometo líneas específicas usando SmartGit / Hg?

Estoy usando SmartGit / Hg. Edité algunos files que trabajan en dos nuevas características separadas. Ahora que terminé de trabajar en la Característica A , quiero comprometer mi trabajo, pero no puedo simplemente comprometer todos mis files editados, ya que contienen cambios de la Característica B , que no quiero comprometer ahora.

Puedes lograr eso usando el command de escenario . En primer lugar, organice todos los files que contienen los cambios que se comprometerán. En este ejemplo, todos los files excepto el llamado DoNotCommit.php contienen al less una línea que queremos confirmar: enter image description here

A continuación, debemos abrir el Editor de índice para todos los files que contengan líneas de la Característica A y la Característica B. En este ejemplo, debemos verificar Main.php y NewFeatures.php : enter image description here

Esto abre el editor de índice . Usted ve tres tabs con su código: Repositorio (HEAD) , Índice , Árbol de trabajo : enter image description here

Para nosotros, solo el Repositorio (HEAD) y la pestaña Indice son importantes. La pestaña Repositorio (HEAD) muestra el contenido ya comprometido del file. La pestaña de índice muestra los cambios que vamos a comprometer. Digamos que solo queremos confirmar el primer bloque de código con la function myNewCompletedFeature : enter image description here

Como ve, eliminamos todo el código que no queremos comprometer desde la pestaña de índice . Esto no elimina el código del Árbol de trabajo , lo que significa que no pierde ninguno de sus cambios. Ahora hacemos lo mismo con nuestro nuevo file NewFeatures.php y lo NewFeatures.php nuevo: enter image description here

En el último paso, vamos a comprometer realmente la nueva característica. ¡Asegúrate de seleccionar Cambios por etapas en la window de confirmación! enter image description here

¡Guau, hemos terminado ahora!