def METHOD_NAME(self):
    # Don't run this test by default.
    # It can spew random git messages depending on the state of the repo.
    c = self.c
    u = c.undoer
    x = GitDiffController(c=c)
    # Setup the outline.
    root = c.rootPosition()
    while root.hasNext():
        root.next().doDelete()
    c.selectPosition(root)
    expected_last_headline = 'git diff HEAD'
    # Run the command, suppressing git messages.
    # Alas, this suppression does not work.
    try:
        sys.stdout = open(os.devnull, 'w')
        x.git_diff()
    finally:
        sys.stdout = sys.__stdout__
    self.assertTrue(c.lastTopLevel().h.startswith(expected_last_headline))
    # Test undo/redo.
    u.undo()
    self.assertEqual(c.lastTopLevel(), root)
    u.redo()
    self.assertTrue(c.lastTopLevel().h.startswith(expected_last_headline))