1. 03 Jul, 2017 1 commit
    • Make sure to always include "common.h" first · 0c7f49dd
      Next to including several files, our "common.h" header also declares
      various macros which are then used throughout the project. As such, we
      have to make sure to always include this file first in all
      implementation files. Otherwise, we might encounter problems or even
      silent behavioural differences due to macros or defines not being
      defined as they should be. So in fact, our header and implementation
      files should make sure to always include "common.h" first.
      
      This commit does so by establishing a common include pattern. Header
      files inside of "src" will now always include "common.h" as its first
      other file, separated by a newline from all the other includes to make
      it stand out as special. There are two cases for the implementation
      files. If they do have a matching header file, they will always include
      this one first, leading to "common.h" being transitively included as
      first file. If they do not have a matching header file, they instead
      include "common.h" as first file themselves.
      
      This fixes the outlined problems and will become our standard practice
      for header and source files inside of the "src/" from now on.
      Patrick Steinhardt committed
  2. 07 Nov, 2014 1 commit
    • iterator: submodules are determined by an index or tree · 62a617dc
      We cannot know from looking at .gitmodules whether a directory is a
      submodule or not. We need the index or tree we are comparing against to
      tell us. Otherwise we have to assume the entry in .gitmodules is stale
      or otherwise invalid.
      
      Thus we pass the index of the repository into the workdir iterator, even
      if we do not want to compare against it. This follows what git does,
      which even for `git diff <tree>`, it will consider staged submodules as
      such.
      Carlos Martín Nieto committed
  3. 06 Mar, 2014 1 commit
  4. 16 Oct, 2013 4 commits
  5. 02 Oct, 2013 1 commit
  6. 08 Jan, 2013 1 commit
  7. 04 Jan, 2013 2 commits
    • More checkout improvements · 7e5c8a5b
      This flips checkout back to be driven off the changes between
      the baseline and the target trees.  This reinstates the complex
      code for tracking the contents of the working directory, but
      overall, I think the resulting logic is easier to follow.
      Russell Belfer committed
    • Rework checkout internals (again) · cf208031
      I've tried to map out the detailed behaviors of checkout and make
      sure that we're handling the various cases correctly, along with
      providing options to allow us to emulate "git checkout" and "git
      checkout-index" with the various flags.  I've thrown away flags
      in the checkout API that seemed like clutter and added some new
      ones.  Also, I've converted the conflict callback to a general
      notification callback so we can emulate "git checkout" output and
      display "dirty" files.
      
      As of this commit, the new behavior is not working 100% but some
      of that is probably baked into tests that are not testing the
      right thing.  This is a decent snapshot point, I think, along the
      way to getting the update done.
      Russell Belfer committed