git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
To: Junio C Hamano <junkio@cox.net>
Cc: git@vger.kernel.org,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Linus Torvalds <torvalds@osdl.org>
Subject: [PATCH 4/3] Fold get_merge_bases_clean() into get_merge_bases()
Date: Sun, 2 Jul 2006 11:49:38 +0200	[thread overview]
Message-ID: <20060702094938.GA10944@lsrfire.ath.cx> (raw)
In-Reply-To: <7vpsgpccak.fsf@assigned-by-dhcp.cox.net>

Due to popular request ;-), change get_merge_bases() to be able to
clean up after itself if needed by adding a cleanup parameter.

We don't need to save the flags and restore them afterwards anymore;
that was a leftover from before the flags were moved out of the
range used in revision.c.  clear_commit_marks() sets them to zero,
which is enough.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>

diff --git a/commit.c b/commit.c
index 70a4eff..94c1d0e 100644
--- a/commit.c
+++ b/commit.c
@@ -1012,7 +1012,8 @@ static void mark_reachable_commits(struc
 	}
 }
 
-struct commit_list *get_merge_bases(struct commit *rev1, struct commit *rev2)
+struct commit_list *get_merge_bases(struct commit *rev1, struct commit *rev2,
+                                    int cleanup)
 {
 	struct commit_list *list = NULL;
 	struct commit_list *result = NULL;
@@ -1080,20 +1081,10 @@ struct commit_list *get_merge_bases(stru
 		tmp = next;
 	}
 
-	return result;
-}
-
-struct commit_list *get_merge_bases_clean(struct commit *rev1,
-                                          struct commit *rev2)
-{
-	unsigned int flags1 = rev1->object.flags;
-	unsigned int flags2 = rev2->object.flags;
-	struct commit_list *result = get_merge_bases(rev1, rev2);
-
-	clear_commit_marks(rev1, PARENT1 | PARENT2 | UNINTERESTING);
-	clear_commit_marks(rev2, PARENT1 | PARENT2 | UNINTERESTING);
-	rev1->object.flags = flags1;
-	rev2->object.flags = flags2;
+	if (cleanup) {
+		clear_commit_marks(rev1, PARENT1 | PARENT2 | UNINTERESTING);
+		clear_commit_marks(rev2, PARENT1 | PARENT2 | UNINTERESTING);
+	}
 
 	return result;
 }
diff --git a/commit.h b/commit.h
index 3a26e29..779ed82 100644
--- a/commit.h
+++ b/commit.h
@@ -105,7 +105,6 @@ struct commit_graft *read_graft_line(cha
 int register_commit_graft(struct commit_graft *, int);
 int read_graft_file(const char *graft_file);
 
-extern struct commit_list *get_merge_bases(struct commit *rev1, struct commit *rev2);
-extern struct commit_list *get_merge_bases_clean(struct commit *rev1, struct commit *rev2);
+extern struct commit_list *get_merge_bases(struct commit *rev1, struct commit *rev2, int cleanup);
 
 #endif /* COMMIT_H */
diff --git a/merge-base.c b/merge-base.c
index b41f76c..59f723f 100644
--- a/merge-base.c
+++ b/merge-base.c
@@ -6,7 +6,7 @@ static int show_all = 0;
 
 static int merge_base(struct commit *rev1, struct commit *rev2)
 {
-	struct commit_list *result = get_merge_bases(rev1, rev2);
+	struct commit_list *result = get_merge_bases(rev1, rev2, 0);
 
 	if (!result)
 		return 1;
diff --git a/revision.c b/revision.c
index 1da6ce3..7865fa4 100644
--- a/revision.c
+++ b/revision.c
@@ -814,7 +814,7 @@ int setup_revisions(int argc, const char
 				}
 
 				if (symmetric) {
-					exclude = get_merge_bases_clean(a, b);
+					exclude = get_merge_bases(a, b, 1);
 					add_pending_commit_list(revs, exclude,
 					                        flags_exclude);
 					a->object.flags |= flags;

  parent reply	other threads:[~2006-07-02  9:49 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-01  2:44 A note on merging conflicts Linus Torvalds
2006-07-01  3:08 ` Junio C Hamano
2006-07-01  3:54   ` Linus Torvalds
2006-07-01  3:59     ` Linus Torvalds
2006-07-01 15:09     ` Rene Scharfe
2006-07-01 15:23       ` Johannes Schindelin
2006-07-01 16:25       ` Linus Torvalds
2006-07-01 18:13         ` Rene Scharfe
2006-07-01 18:01       ` J. Bruce Fields
2006-07-01 18:20         ` Linus Torvalds
2006-07-01 22:24           ` Daniel Barkalow
2006-07-01 22:57             ` Linus Torvalds
2006-07-01 23:25               ` Daniel Barkalow
2006-07-01 23:45                 ` Daniel Barkalow
2006-07-02 11:31                   ` Rene Scharfe
2006-07-02 21:42                     ` Daniel Barkalow
2006-07-02  0:08                 ` Linus Torvalds
2006-07-01 18:22         ` Jakub Narebski
2006-07-01 18:52           ` Linus Torvalds
2006-07-01 18:37       ` Junio C Hamano
2006-07-01 19:29         ` Rene Scharfe
2006-07-01 19:56           ` Junio C Hamano
2006-07-01 23:01             ` Johannes Schindelin
2006-07-01 20:04           ` Linus Torvalds
2006-07-01 20:07             ` Junio C Hamano
2006-07-01 20:14               ` Junio C Hamano
2006-07-01 23:29                 ` [PATCH 1/3] Add get_merge_bases_clean() Rene Scharfe
2006-07-01 23:43                   ` Johannes Schindelin
2006-07-01 23:29                 ` [PATCH 2/3] Add '...' operator for revisions Rene Scharfe
2006-07-01 23:29                 ` [PATCH 3/3] Make clear_commit_marks() clean harder Rene Scharfe
2006-07-03  9:32                   ` Junio C Hamano
2006-07-03 13:56                     ` Johannes Schindelin
2006-07-03 17:05                       ` Linus Torvalds
2006-07-03 21:08                         ` Johannes Schindelin
2006-07-03 19:47                       ` Junio C Hamano
2006-07-03 21:12                         ` Johannes Schindelin
2006-07-03 22:55                           ` Linus Torvalds
2006-07-04  7:53                             ` Johannes Schindelin
2006-07-04  8:20                               ` Junio C Hamano
2006-07-02  9:49                 ` Rene Scharfe [this message]
2006-07-02  9:56                   ` [PATCH 4/3] Fold get_merge_bases_clean() into get_merge_bases() Johannes Schindelin
2006-07-02 16:43                   ` Linus Torvalds
2006-07-02 17:40                     ` Rene Scharfe
2006-07-02 18:28                       ` Junio C Hamano
2006-07-02 20:59                         ` Rene Scharfe
2006-07-02 21:15                           ` Rene Scharfe
2006-07-02 21:17                           ` Linus Torvalds
2006-07-02 20:44                       ` Linus Torvalds
2006-07-07  8:26 ` A note on merging conflicts Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060702094938.GA10944@lsrfire.ath.cx \
    --to=rene.scharfe@lsrfire.ath.cx \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).