All of lore.kernel.org
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: Elijah Newren <newren@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	Stefan Beller <sbeller@google.com>, Jeff King <peff@peff.net>
Subject: [PATCH v2 0/8] object_id part 4
Date: Sat, 18 Jun 2016 22:13:59 +0000	[thread overview]
Message-ID: <20160618221407.1046188-1-sandals@crustytoothpaste.net> (raw)

This series is part 4 in a series of conversions to replace instances of
unsigned char [20] with struct object_id.  Most of this series touches
the merge-recursive code.

New in this series is the use of Coccinelle (http://coccinelle.lip6.fr/)
semantic patches.  These semantic patches can make automatic
transformations to C source code for cleanup or refactoring reasons.

This series introduces a set of transforms for the struct object_id
transition, cleans up some existing code with them, and applies a small
number of semantic patches to transform parts of the merge-recursive
code.  Some manual refactoring work follows.

Note that in the patches created with the semantic patches, the only manual
change was the definition of the struct member.  Opinions on whether this is a
viable technique for further work to ease both the creation and review of
patches are of course welcomed.

The testsuite continues to pass at each step, and this series rebases
cleanly on both pu and next.

I moved the Coccinelle transforms to contrib/examples/coccinelle, but if
it's decided that the Coccinelle transforms simply don't belong in the
repository, it's fine to simply drop the first patch (and maybe fix up
the commit messages).  I can create a GitHub Gist and let reviewers
refer to that at their convenience.

Changes from v1:
* Move the object ID transformations to contrib/examples/coccinelle.
* Add a README to that folder explaining what they are.
* Adjust the Coccinelle patches to transform plain structs before
  pointers to structs to avoid misconversions.  This addresses the issue
  that Peff caught originally.

brian m. carlson (8):
  Add basic Coccinelle transforms.
  Apply object_id Coccinelle transformations.
  Convert struct diff_filespec to struct object_id
  Rename struct diff_filespec's sha1_valid member.
  merge-recursive: convert struct stage_data to use object_id
  merge-recursive: convert struct merge_file_info to object_id
  merge-recursive: convert leaf functions to use struct object_id
  merge-recursive: convert merge_recursive_generic to object_id

 bisect.c                                    |   2 +-
 builtin/blame.c                             |   6 +-
 builtin/fast-export.c                       |  10 +-
 builtin/merge-recursive.c                   |  20 +-
 builtin/merge.c                             |  13 +-
 builtin/reset.c                             |   4 +-
 combine-diff.c                              |  14 +-
 contrib/examples/coccinelle/README          |   2 +
 contrib/examples/coccinelle/object_id.cocci |  83 ++++++++
 diff.c                                      |  95 +++++----
 diffcore-break.c                            |   4 +-
 diffcore-rename.c                           |  16 +-
 diffcore.h                                  |   4 +-
 line-log.c                                  |  12 +-
 merge-recursive.c                           | 310 ++++++++++++++--------------
 merge-recursive.h                           |   6 +-
 notes-merge.c                               |  42 ++--
 refs/files-backend.c                        |   4 +-
 submodule.c                                 |   4 +-
 wt-status.c                                 |   3 +-
 20 files changed, 378 insertions(+), 276 deletions(-)
 create mode 100644 contrib/examples/coccinelle/README
 create mode 100644 contrib/examples/coccinelle/object_id.cocci

             reply	other threads:[~2016-06-18 22:14 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-18 22:13 brian m. carlson [this message]
2016-06-18 22:14 ` [PATCH v2 1/8] Add basic Coccinelle transforms brian m. carlson
2016-06-18 22:14 ` [PATCH v2 2/8] Apply object_id Coccinelle transformations brian m. carlson
2016-06-21 21:36   ` Junio C Hamano
2016-06-18 22:14 ` [PATCH v2 3/8] Convert struct diff_filespec to struct object_id brian m. carlson
2016-06-21 22:22   ` Junio C Hamano
2016-06-24 15:27     ` brian m. carlson
2016-06-18 22:14 ` [PATCH v2 4/8] Rename struct diff_filespec's sha1_valid member brian m. carlson
2016-06-18 22:14 ` [PATCH v2 5/8] merge-recursive: convert struct stage_data to use object_id brian m. carlson
2016-06-18 22:14 ` [PATCH v2 6/8] merge-recursive: convert struct merge_file_info to object_id brian m. carlson
2016-06-18 22:14 ` [PATCH v2 7/8] merge-recursive: convert leaf functions to use struct object_id brian m. carlson
2016-06-18 22:14 ` [PATCH v2 8/8] merge-recursive: convert merge_recursive_generic to object_id brian m. carlson
2016-06-19  8:50 ` [PATCH v2 0/8] object_id part 4 Johannes Sixt
2016-06-19  9:24   ` Jeff King
2016-06-19 17:25     ` brian m. carlson
2016-06-20  7:01     ` Johannes Schindelin
2016-06-20 10:05       ` Jeff King
2016-06-20 15:53         ` Junio C Hamano
2016-06-21 21:22 ` Junio C Hamano
2016-06-22 18:44   ` brian m. carlson

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=20160618221407.1046188-1-sandals@crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=newren@gmail.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.