git-2.22.0/graph.c
/*
 * Draw the horizontal dashes of an octopus merge and return the number of
 * characters written.
 */
Draw the horizontal dashes of an octopus merge and return the number of
characters written.
Draw the horizontal dashes of an octopus merge and return the number of characters written .
static int graph_draw_octopus_merge(struct git_graph *graph,
				    struct strbuf *sb)
{
	const int dashless_parents = 2;
	int dashful_parents = graph->num_parents - dashless_parents;
	int added_cols = (graph->num_new_columns - graph->num_columns);
	int parent_in_old_cols = graph->num_parents - added_cols;
	int first_col = graph->commit_index + dashless_parents
	    - parent_in_old_cols;
	int i;
	for (i = 0; i < dashful_parents; i++) {
		strbuf_write_column(sb, &graph->new_columns[i+first_col], '-');
		strbuf_write_column(sb, &graph->new_columns[i+first_col],
				    i == dashful_parents-1 ? '.' : '-');
	}
	return 2 * dashful_parents;
}
static int graph_draw_octopus_merge ( struct git_graph * graph , struct strbuf * sb ) { const int dashless_parents = 2 ; int dashful_parents = graph -> num_parents - dashless_parents ; int added_cols = ( graph -> num_new_columns - graph -> num_columns ) ; int parent_in_old_cols = graph -> num_parents - added_cols ; int first_col = graph -> commit_index + dashless_parents - parent_in_old_cols ; int i ; for ( i = 0 ; i < dashful_parents ; i ++ ) { strbuf_write_column ( sb , & graph -> new_columns [ i + first_col ] , ' ' ) ; strbuf_write_column ( sb , & graph -> new_columns [ i + first_col ] , i == dashful_parents - 1 ? ' ' : ' ' ) ; } return 2 * dashful_parents ; }
Draw the horizontal dashes of an octopus merge and return the number of
 characters written.
Draw the horizontal dashes of an octopus merge and return the number of characters written .
/*
	 * Here dashless_parents represents the number of parents which don't
	 * need to have dashes (the edges labeled "0" and "1").  And
	 * dashful_parents are the remaining ones.
	 *
	 * | *---.
	 * | |\ \ \
	 * | | | | |
	 * x 0 1 2 3
	 *
	 */ /*
	 * Usually, we add one new column for each parent (like the diagram
	 * above) but sometimes the first parent goes into an existing column,
	 * like this:
	 *
	 * | *---.
	 * | |\ \ \
	 * |/ / / /
	 * x 0 1 2
	 *
	 * In which case the number of parents will be one greater than the
	 * number of added columns.
	 */ /*
	 * In both cases, commit_index corresponds to the edge labeled "0".
	 */