El problema es que cualquier bifurcación cometer crea una rama de "anónimo" (en oposición a una rama llamada, que es un concepto ligeramente diferente), y la vista gráfico predeterminado no puede place commits en columnas estáticas sin tener buenos ids. Por lo tanto, el implementador se rindió y tenemos el gráfico actual.
Ahora, creo que la primera vista que das es increíble, y debería ser posible usar algunas heurísticas para asignar identificadores a ramas anónimas dependiendo de (desarrollador1-a, desarrollador2-a, desarrollador2-b, etc.). Eso sería genial. :)
¡Hora de la contribución!
actualización
Lo que me gustaría ver:
- compromete ordenados verticalmente por dedicar tiempo, en lugar de ID de revisión número entero.
- Commite ordenados horizontalmente, agrupados por rama con nombre, y por committer dentro de cada rama. (Y cada Committers compromete deben estar cerca, en caso de un confirmador se ha dividido y se fusionó sus propios datos.)
Esto significa un algoritmo tiene que mirar a todos los envíos (que se han de considerarse) antes de ocupar la vista y colocando los "puntos" de compromiso en la columna/fila de la derecha.
tres pasadas sobre todos los envíos debería ser suficiente sin embargo, y cada uno se puede hacer en tiempo O (n), que es O (n) para todo:
- caminar todo para recopilar datos (recoger ramas/committers) (o (n))
- ramas ordenar/comete en orden columna adecuada
- tipo compromete a través de cometer tiempo (o (n log n) o mejor o (n) con radix-sort en segundos desde época)
- Compromisos de paseo y dibujar puntos y líneas ancestrales según la agrupación
Quizás necesitemos ser inteligentes (er) al enrutar las líneas entre confirmaciones, pero eso está por verse. Especialmente, podríamos usar espacio vertical entre puntos de compromiso para conectar fusiones que están muy separadas verticalmente (es decir, en el tiempo), en lugar de usar una columna completa como el algoritmo actual
cualquier actualización sobre cómo hacer que TortoiseHG muestre posiciones estáticas para la sucursal ? – tkokasih
@wannabeprogrammer Ninguno de mi parte. Desde que escribí esta pregunta, aprendí a dejar de pensar en ramas (estilo ClearCase o Subversion) y, en cambio, lo veo como marcadores. Cambiar a Git ayudó con eso. – MdaG