[PATCH] Make sure the diffs of pull requests are stored in the Patch object.

Guilherme Salgado guilherme.salgado at linaro.org
Fri Feb 11 22:27:25 EST 2011


Even though I did use --compose to enter a description of the patch, it
looks like it didn't end up in the email sent -- I wonder where it's
supposed to go, though.

Anyway, this patch makes sure we don't throw away the diff of pull
requests.  since I didn't have the mbox file of a pull request handy I
copied the existing one and tweaked it so that I could use it for my
test. Hope that's ok.

Cheers,

On Fri, 2011-02-11 at 09:16 -0200, Guilherme Salgado wrote:
> ---
>  apps/patchwork/bin/parsemail.py                    |   10 +-
>  .../mail/0002-git-pull-request-with-diff.mbox      |  141 ++++++++++++++++++++
>  apps/patchwork/tests/patchparser.py                |   15 ++
>  3 files changed, 158 insertions(+), 8 deletions(-)
>  create mode 100644 apps/patchwork/tests/mail/0002-git-pull-request-with-diff.mbox
> 
> diff --git a/apps/patchwork/bin/parsemail.py b/apps/patchwork/bin/parsemail.py
> index 700cb6f..f823075 100755
> --- a/apps/patchwork/bin/parsemail.py
> +++ b/apps/patchwork/bin/parsemail.py
> @@ -183,15 +183,9 @@ def find_content(project, mail):
>      patch = None
>      comment = None
>  
> -    if patchbuf:
> -        mail_headers(mail)
> +    if pullurl or patchbuf:
>          name = clean_subject(mail.get('Subject'), [project.linkname])
> -        patch = Patch(name = name, content = patchbuf,
> -                    date = mail_date(mail), headers = mail_headers(mail))
> -
> -    if pullurl:
> -        name = clean_subject(mail.get('Subject'), [project.linkname])
> -        patch = Patch(name = name, pull_url = pullurl,
> +        patch = Patch(name = name, pull_url = pullurl, content = patchbuf,
>                      date = mail_date(mail), headers = mail_headers(mail))
>  
>      if commentbuf:
> diff --git a/apps/patchwork/tests/mail/0002-git-pull-request-with-diff.mbox b/apps/patchwork/tests/mail/0002-git-pull-request-with-diff.mbox
> new file mode 100644
> index 0000000..523c4bf
> --- /dev/null
> +++ b/apps/patchwork/tests/mail/0002-git-pull-request-with-diff.mbox
> @@ -0,0 +1,141 @@
> +From benh at kernel.crashing.org Fri Oct 22 11:51:02 2010
> +Return-Path: <linuxppc-dev-bounces+jk=ozlabs.org at lists.ozlabs.org>
> +X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on bilbo.ozlabs.org
> +X-Spam-Level: 
> +X-Spam-Status: No, score=0.0 required=3.0 tests=none autolearn=disabled
> +	version=3.3.1
> +X-Original-To: jk at ozlabs.org
> +Delivered-To: jk at ozlabs.org
> +Received: from bilbo.ozlabs.org (localhost [127.0.0.1])
> +	by ozlabs.org (Postfix) with ESMTP id ED4B3100937
> +	for <jk at ozlabs.org>; Fri, 22 Oct 2010 14:51:54 +1100 (EST)
> +Received: by ozlabs.org (Postfix)
> +	id BF799B70CB; Fri, 22 Oct 2010 14:51:50 +1100 (EST)
> +Delivered-To: linuxppc-dev at ozlabs.org
> +Received: from gate.crashing.org (gate.crashing.org [63.228.1.57])
> +	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
> +	(Client did not present a certificate)
> +	by ozlabs.org (Postfix) with ESMTPS id 94629B7043
> +	for <linuxppc-dev at ozlabs.org>; Fri, 22 Oct 2010 14:51:49 +1100 (EST)
> +Received: from [IPv6:::1] (localhost.localdomain [127.0.0.1])
> +	by gate.crashing.org (8.14.1/8.13.8) with ESMTP id o9M3p3SP018234;
> +	Thu, 21 Oct 2010 22:51:04 -0500
> +Subject: [git pull] Please pull powerpc.git next branch
> +From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> +To: Linus Torvalds <torvalds at linux-foundation.org>
> +Date: Fri, 22 Oct 2010 14:51:02 +1100
> +Message-ID: <1287719462.2198.37.camel at pasglop>
> +Mime-Version: 1.0
> +X-Mailer: Evolution 2.30.3 
> +Cc: linuxppc-dev list <linuxppc-dev at ozlabs.org>,
> + Andrew Morton <akpm at linux-foundation.org>,
> + Linux Kernel list <linux-kernel at vger.kernel.org>
> +X-BeenThere: linuxppc-dev at lists.ozlabs.org
> +X-Mailman-Version: 2.1.13
> +Precedence: list
> +List-Id: Linux on PowerPC Developers Mail List <cbe-oss-dev.ozlabs.org>
> +List-Unsubscribe: <https://lists.ozlabs.org/options/linuxppc-dev>,
> +	<mailto:linuxppc-dev-request at lists.ozlabs.org?subject=unsubscribe>
> +List-Archive: <http://lists.ozlabs.org/pipermail/linuxppc-dev>
> +List-Post: <mailto:linuxppc-dev at lists.ozlabs.org>
> +List-Help: <mailto:linuxppc-dev-request at lists.ozlabs.org?subject=help>
> +List-Subscribe: <https://lists.ozlabs.org/listinfo/linuxppc-dev>,
> +	<mailto:linuxppc-dev-request at lists.ozlabs.org?subject=subscribe>
> +Content-Type: text/plain;
> +  charset="us-ascii"
> +Content-Transfer-Encoding: 7bit
> +Sender: linuxppc-dev-bounces+jk=ozlabs.org at lists.ozlabs.org
> +Errors-To: linuxppc-dev-bounces+jk=ozlabs.org at lists.ozlabs.org
> +X-UID: 11446
> +X-Length: 16781
> +Status: R
> +X-Status: N
> +X-KMail-EncryptionState:  
> +X-KMail-SignatureState:  
> +X-KMail-MDN-Sent:  
> +
> +The following changes since commit e10117d36ef758da0690c95ecffc09d5dd7da479:
> +  Linus Torvalds (1):
> +        Merge branch 'upstream-linus' of git://git.kernel.org/.../jgarzik/libata-dev
> +
> +are available in the git repository at:
> +
> +  git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git x86-fixes-for-linus
> +
> +------------------>
> +H. Peter Anvin (1):
> +      x86-32: Make sure the stack is set up before we use it
> +Matthieu CASTET (1):
> +      x86, nx: Don't force pages RW when setting NX bits
> +
> +Suresh Siddha (1):
> +      x86, mtrr: Avoid MTRR reprogramming on BP during boot on UP platforms
> +
> +
> + arch/x86/include/asm/smp.h      |    5 +----
> + arch/x86/kernel/acpi/sleep.c    |    2 +-
> + arch/x86/kernel/cpu/mtrr/main.c |   10 +++++++++-
> + arch/x86/kernel/head_32.S       |   30 +++++++++++++-----------------
> + arch/x86/kernel/smpboot.c       |    4 ++--
> + arch/x86/mm/pageattr.c          |    8 --------
> + 6 files changed, 26 insertions(+), 33 deletions(-)
> +diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
> +index 4c2f63c..1f46951 100644
> +--- a/arch/x86/include/asm/smp.h
> ++++ b/arch/x86/include/asm/smp.h
> +@@ -40,10 +40,7 @@ DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid);
> + DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
> + 
> + /* Static state in head.S used to set up a CPU */
> +-extern struct {
> +-	void *sp;
> +-	unsigned short ss;
> +-} stack_start;
> ++extern unsigned long stack_start; /* Initial stack pointer address */
> + 
> + struct smp_ops {
> + 	void (*smp_prepare_boot_cpu)(void);
> +diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
> +index 69fd72a..4d9ebba 100644
> +--- a/arch/x86/kernel/acpi/sleep.c
> ++++ b/arch/x86/kernel/acpi/sleep.c
> +@@ -100,7 +100,7 @@ int acpi_save_state_mem(void)
> + #else /* CONFIG_64BIT */
> + 	header->trampoline_segment = setup_trampoline() >> 4;
> + #ifdef CONFIG_SMP
> +-	stack_start.sp = temp_stack + sizeof(temp_stack);
> ++	stack_start = (unsigned long)temp_stack + sizeof(temp_stack);
> + 	early_gdt_descr.address =
> + 			(unsigned long)get_cpu_gdt_table(smp_processor_id());
> + 	initial_gs = per_cpu_offset(smp_processor_id());
> +diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
> +index 01c0f3e..bebabec 100644
> +--- a/arch/x86/kernel/cpu/mtrr/main.c
> ++++ b/arch/x86/kernel/cpu/mtrr/main.c
> +@@ -793,13 +793,21 @@ void set_mtrr_aps_delayed_init(void)
> + }
> + 
> + /*
> +- * MTRR initialization for all AP's
> ++ * Delayed MTRR initialization for all AP's
> +  */
> + void mtrr_aps_init(void)
> + {
> + 	if (!use_intel())
> + 		return;
> + 
> ++	/*
> ++	 * Check if someone has requested the delay of AP MTRR initialization,
> ++	 * by doing set_mtrr_aps_delayed_init(), prior to this point. If not,
> ++	 * then we are done.
> ++	 */
> ++	if (!mtrr_aps_delayed_init)
> ++		return;
> ++
> + 	set_mtrr(~0U, 0, 0, 0);
> + 	mtrr_aps_delayed_init = false;
> + }
> +_______________________________________________
> +Linuxppc-dev mailing list
> +Linuxppc-dev at lists.ozlabs.org
> +https://lists.ozlabs.org/listinfo/linuxppc-dev
> diff --git a/apps/patchwork/tests/patchparser.py b/apps/patchwork/tests/patchparser.py
> index ff0025a..46cabc3 100644
> --- a/apps/patchwork/tests/patchparser.py
> +++ b/apps/patchwork/tests/patchparser.py
> @@ -333,3 +333,18 @@ class GitPullTest(PatchTest):
>          self.assertTrue(patch.pull_url is not None)
>          self.assertTrue(patch.content is None)
>          self.assertTrue(comment is not None)
> +
> +    def testGitPullRequestWithDiff(self):
> +        mail = read_mail('0002-git-pull-request-with-diff.mbox',
> +                        project = self.project)
> +        (patch, comment) = find_content(self.project, mail)
> +        self.assertTrue(patch is not None)
> +        self.assertEqual(
> +            ('git://git.kernel.org/pub/scm/linux/kernel/git/tip/'
> +             'linux-2.6-tip.git x86-fixes-for-linus'),
> +            patch.pull_url)
> +        self.assertTrue(
> +            patch.content.startswith(
> +                'diff --git a/arch/x86/include/asm/smp.h'),
> +            patch.content)
> +        self.assertTrue(comment is not None)

-- 
Guilherme Salgado <https://launchpad.net/~salgado>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/patchwork/attachments/20110211/4418ecb2/attachment-0001.pgp>


More information about the Patchwork mailing list