diff options
author | Junio C Hamano <junkio@cox.net> | 2006-02-24 01:14:41 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-02-24 01:14:41 -0800 |
commit | e6a933bdb7fd1f052a4b84fb4077f882cece40c6 (patch) | |
tree | 7e35842e2dd571573649c433b73549ee2ccb1465 | |
parent | 207a1f3ce9894ad6fab59077b9cec1adc70ed6c5 (diff) | |
parent | 3efaa937a52aff14ca35207fd3a8a4d1d1ed2067 (diff) | |
download | git-e6a933bdb7fd1f052a4b84fb4077f882cece40c6.tar.gz git-e6a933bdb7fd1f052a4b84fb4077f882cece40c6.tar.xz |
Merge fixes from master
-rwxr-xr-x | contrib/gitview/gitview | 48 | ||||
-rwxr-xr-x | git-clone.sh | 2 | ||||
-rwxr-xr-x | git-fmt-merge-msg.perl | 31 |
3 files changed, 41 insertions, 40 deletions
diff --git a/contrib/gitview/gitview b/contrib/gitview/gitview index 4b52eb7dc..b04df7416 100755 --- a/contrib/gitview/gitview +++ b/contrib/gitview/gitview @@ -823,6 +823,7 @@ class GitView: self.colours = {} self.nodepos = {} self.incomplete_line = {} + self.commits = [] index = 0 last_colour = 0 @@ -840,12 +841,7 @@ class GitView: commit = Commit(commit_lines) if (commit != None ): - (out_line, last_colour, last_nodepos) = self.draw_graph(commit, - index, out_line, - last_colour, - last_nodepos) - self.index[commit.commit_sha1] = index - index += 1 + self.commits.append(commit) # Skip the '\0 commit_lines = [] @@ -854,6 +850,14 @@ class GitView: fp.close() + for commit in self.commits: + (out_line, last_colour, last_nodepos) = self.draw_graph(commit, + index, out_line, + last_colour, + last_nodepos) + self.index[commit.commit_sha1] = index + index += 1 + self.treeview.set_model(self.model) self.treeview.show() @@ -869,13 +873,6 @@ class GitView: last_nodepos = 0 # Add the incomplete lines of the last cell in this - for sha1 in self.incomplete_line.keys(): - if ( sha1 != commit.commit_sha1): - for pos in self.incomplete_line[sha1]: - in_line.append((pos, pos, self.colours[sha1])) - else: - del self.incomplete_line[sha1] - try: colour = self.colours[commit.commit_sha1] except KeyError: @@ -897,6 +894,14 @@ class GitView: self.colours[commit.parent_sha1[0]] = colour self.nodepos[commit.parent_sha1[0]] = node_pos + for sha1 in self.incomplete_line.keys(): + if ( sha1 != commit.commit_sha1): + self.draw_incomplete_line(sha1, node_pos, + out_line, in_line, index) + else: + del self.incomplete_line[sha1] + + in_line.append((node_pos, self.nodepos[commit.parent_sha1[0]], self.colours[commit.parent_sha1[0]])) @@ -936,6 +941,23 @@ class GitView: except KeyError: self.incomplete_line[sha1] = [self.nodepos[sha1]] + def draw_incomplete_line(self, sha1, node_pos, out_line, in_line, index): + for idx, pos in enumerate(self.incomplete_line[sha1]): + if(pos == node_pos): + out_line.append((pos, + pos+0.5, self.colours[sha1])) + self.incomplete_line[sha1][idx] = pos = pos+0.5 + try: + next_commit = self.commits[index+1] + if (next_commit.commit_sha1 == sha1 and pos != int(pos)): + # join the line back to the node point + # This need to be done only if we modified it + in_line.append((pos, pos-0.5, self.colours[sha1])) + continue; + except IndexError: + pass + in_line.append((pos, pos, self.colours[sha1])) + def _go_clicked_cb(self, widget, revid): """Callback for when the go button for a parent is clicked.""" diff --git a/git-clone.sh b/git-clone.sh index a0590884b..4ed861d57 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -118,7 +118,7 @@ dir="$2" [ -e "$dir" ] && echo "$dir already exists." && usage mkdir -p "$dir" && D=$(cd "$dir" && pwd) && -trap 'err=$?; rm -r $D; exit $err' exit +trap 'err=$?; cd ..; rm -r "$D"; exit $err' exit case "$bare" in yes) GIT_DIR="$D" ;; *) GIT_DIR="$D/.git" ;; diff --git a/git-fmt-merge-msg.perl b/git-fmt-merge-msg.perl index c13af4884..dae383f23 100755 --- a/git-fmt-merge-msg.perl +++ b/git-fmt-merge-msg.perl @@ -28,28 +28,13 @@ sub andjoin { } sub repoconfig { - my $val; - eval { - my $pid = open(my $fh, '-|'); - if (!$pid) { - exec('git-repo-config', '--get', 'merge.summary'); - } - ($val) = <$fh>; - close $fh; - }; + my ($val) = qx{git-repo-config --get merge.summary}; return $val; } sub current_branch { - my $fh; - my $pid = open($fh, '-|'); - die "$!" unless defined $pid; - if (!$pid) { - exec('git-symbolic-ref', 'HEAD') or die "$!"; - } - my ($bra) = <$fh>; + my ($bra) = qx{git-symbolic-ref HEAD}; chomp($bra); - close $fh or die "$!"; $bra =~ s|^refs/heads/||; if ($bra ne 'master') { $bra = " into $bra"; @@ -61,18 +46,12 @@ sub current_branch { sub shortlog { my ($tip) = @_; - my ($fh, @result); - my $pid = open($fh, '-|'); - die "$!" unless defined $pid; - if (!$pid) { - exec('git-log', '--topo-order', - '--pretty=oneline', $tip, '^HEAD') or die "$!"; - } - while (<$fh>) { + my @result; + foreach ( qx{git-log --topo-order --pretty=oneline $tip ^HEAD} ) { s/^[0-9a-f]{40}\s+//; push @result, $_; } - close $fh or die "$!"; + die "git-log failed\n" if $?; return @result; } |