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. 08 Sep, 2015 1 commit
  3. 04 Sep, 2015 2 commits
  4. 13 May, 2015 3 commits
    • remote: move the update_fetchhead setting to the options · 3eff2a57
      While this will rarely be different from the default, having it in the
      remote adds yet another setting it has to keep around and can affect its
      behaviour. Move it to the options.
      Carlos Martín Nieto committed
    • remote: move the transport ctor to the callbacks · 058b753c
      Instead of having it set in a different place from every other callback,
      put it the main structure. This removes some state from the remote and
      makes it behave more like clone, where the constructors are passed via
      the options.
      Carlos Martín Nieto committed
    • Remove the callbacks struct from the remote · 8f0104ec
      Having the setting be different from calling its actions was not a great
      idea and made for the sake of the wrong convenience.
      
      Instead of that, accept either fetch options, push options or the
      callbacks when dealing with the remote. The fetch options are currently
      only the callbacks, but more options will be moved from setters and
      getters on the remote to the options.
      
      This does mean passing the same struct along the different functions but
      the typical use-case will only call git_remote_fetch() or
      git_remote_push() and so won't notice much difference.
      Carlos Martín Nieto committed
  5. 30 Dec, 2014 1 commit
  6. 14 Dec, 2014 1 commit
  7. 30 Sep, 2014 2 commits
    • remote: implement opportunistic remote-tracking branch updates · c5837cad
      When a list of refspecs is passed to fetch (what git would consider
      refspec passed on the command-line), we not only need to perform the
      updates described in that refspec, but also update the remote-tracking
      branch of the fetched remote heads according to the remote's configured
      refspecs.
      
      These "fetches" are not however to be written to FETCH_HEAD as they
      would be duplicate data, and it's not what the user asked for.
      Carlos Martín Nieto committed
    • remote: store passive refspecs · 2cdd5c57
      The configured/base fetch refspecs need to be taken into account in
      order to implement opportunistic remote-tracking branch updates. DWIM
      them and store them in the struct, but don't do anything with them yet.
      Carlos Martín Nieto committed
  8. 16 Sep, 2014 1 commit
    • net: remove support for outright ignoring certificates · 41698f22
      This option make it easy to ignore anything about the server we're
      connecting to, which is bad security practice. This was necessary as we
      didn't use to expose detailed information about the certificate, but now
      that we do, we should get rid of this.
      
      If the user wants to ignore everything, they can still provide a
      callback which ignores all the information passed.
      Carlos Martín Nieto committed
  9. 14 Aug, 2014 1 commit
    • Custom transport: minor cleanups · c180c065
       * Move the transport registration mechanisms into a new header under
         'sys/' because this is advanced stuff.
       * Remove the 'priority' argument from the registration as it adds
         unnecessary complexity.  (Since transports cannot decline to operate,
         only the highest priority transport is ever executed.)  Users who
         require per-priority transports can implement that in their custom
         transport themselves.
       * Simplify registration further by taking a scheme (eg "http") instead
         of a prefix (eg "http://").
      Edward Thomson committed
  10. 27 Jun, 2014 1 commit
  11. 18 Nov, 2013 1 commit
  12. 01 Nov, 2013 1 commit
  13. 02 Oct, 2013 1 commit
  14. 10 Jun, 2013 1 commit
    • Reorganize diff and add basic diff driver · 114f5a6c
      This is a significant reorganization of the diff code to break it
      into a set of more clearly distinct files and to document the new
      organization.  Hopefully this will make the diff code easier to
      understand and to extend.
      
      This adds a new `git_diff_driver` object that looks of diff driver
      information from the attributes and the config so that things like
      function content in diff headers can be provided.  The full driver
      spec is not implemented in the commit - this is focused on the
      reorganization of the code and putting the driver hooks in place.
      
      This also removes a few #includes from src/repository.h that were
      overbroad, but as a result required extra #includes in a variety
      of places since including src/repository.h no longer results in
      pulling in the whole world.
      Russell Belfer committed
  15. 20 Apr, 2013 2 commits
    • refspec: unify the string and parsed data · 1be680c4
      It used to be separate as an attempt to make the querying easier, but
      it didn't work out that way, so put all the data together.
      
      Add git_refspec_string() as well to get the original string, which is
      now stored alongside the independent parts.
      Carlos Martín Nieto committed
    • remote: handle multiple refspecs · 4330ab26
      A remote can have a multitude of refspecs. Up to now our git_remote's
      have supported a single one for each fetch and push out of simplicity
      to get something working.
      
      Let the remotes and internal code know about multiple remotes and get
      the tests passing with them.
      
      Instead of setting a refspec, the external users can clear all and add
      refspecs. This should be enough for most uses, though we're still
      missing a querying function.
      Carlos Martín Nieto committed
  16. 08 Jan, 2013 1 commit
  17. 02 Jan, 2013 1 commit
  18. 20 Dec, 2012 1 commit
  19. 10 Dec, 2012 1 commit
  20. 28 Nov, 2012 1 commit
  21. 27 Nov, 2012 1 commit
  22. 11 Nov, 2012 1 commit
  23. 06 Nov, 2012 1 commit
  24. 01 Nov, 2012 1 commit
  25. 24 Oct, 2012 1 commit
  26. 20 Oct, 2012 1 commit
  27. 07 Oct, 2012 1 commit
  28. 30 Sep, 2012 2 commits
  29. 04 Aug, 2012 1 commit
  30. 26 Jul, 2012 2 commits
  31. 21 Jul, 2012 1 commit
  32. 26 May, 2012 1 commit
  33. 13 Feb, 2012 1 commit