Permalink
Switch branches/tags
Commits on Apr 29, 2012
  1. Shorten name of readme

    committed Apr 29, 2012
  2. v0.1.2: Correct composer.json

    committed Apr 29, 2012
  3. v0.1.1: composerification!

    committed Apr 29, 2012
Commits on Mar 18, 2012
  1. Solidify type names

    committed Mar 18, 2012
  2. Add missing variable

    committed Mar 18, 2012
  3. Improve non-pack handling

    committed Mar 18, 2012
Commits on Jun 30, 2011
  1. Edited README.markdown via GitHub

    xaav committed Jun 30, 2011
  2. Edited README.markdown via GitHub

    xaav committed Jun 30, 2011
Commits on Jun 14, 2011
  1. Fixed namespace errors.

    xaav committed Jun 14, 2011
  2. Made write to disk.

    xaav committed Jun 14, 2011
  3. Fixed Exception namespaces.

    xaav committed Jun 14, 2011
Commits on Jun 13, 2011
  1. Fixed namespace errors.

    xaav committed Jun 13, 2011
  2. Changed directory location.

    xaav committed Jun 13, 2011
Commits on Jun 12, 2011
  1. Upadated readme.

    xaav committed Jun 12, 2011
  2. Moved autoload file.

    xaav committed Jun 12, 2011
  3. Edited README.markdown via GitHub

    xaav committed Jun 12, 2011
  4. Updated readme.

    xaav committed Jun 12, 2011
  5. Moved to subfolder.

    xaav committed Jun 12, 2011
  6. Ignored IDE files.

    xaav committed Jun 12, 2011
  7. Moved errors to different classes.

    xaav committed Jun 12, 2011
  8. Using namespaces.

    xaav committed Jun 12, 2011
  9. Changed to use autoloading.

    Change-Id: Ia8e266ff02fdbae3ef59b7d5bef63527b1d486c8
    xaav committed Jun 12, 2011
Commits on Feb 1, 2010
  1. GitCommit now 'decorates' the iterator aggregate and countable of a G…

    …itTree, minor fixes for the GitDemo on the blog
    ssured committed Feb 1, 2010
Commits on Oct 14, 2009
  1. fixed getHistory

    ssured committed Oct 14, 2009
Commits on Sep 13, 2009
Commits on Sep 12, 2009
  1. added a functional unit test for the Git class, lots of minor updates…

    …, code seems to work as alpha
    ssured committed Sep 12, 2009
Commits on Aug 25, 2009
  1. major rewrite

    - added a SHA object: I was confused too many times when to use a bin and when to use a hex sha, this object eliminates the differences
    - added a GitPath object: this object converts a string into a path, exposes an easy API and checks the input for irregularities, like leading spaces, ... This object removes lots of checks from the original code
    - modified GitObject:
      - removed public variables, now accessible by __set and __get magic methods
      - added lazy loading, an object is loaded when its properties are accessed
      - changed the way objects are instantiated, changed the gettypename and gettypeid methods
      - secures all properties when a SHA is calculated, you need to clone an object to make it writable again
    - introduced GitPathObject, from which GitBlob and GitTree will extend
      - these objects are objects which have a mode and have a history
    - modified GitTree object:
      - the object now exposes ArrayAccess to access all its nodes. Access is read AND write. Array access means you can do this:
        $blob = $tree[$path];
        this will fetch the blob at relative path $path in tree $tree; it replaces your find method
      - adding an object to the tree is as easy as: $tree[$path] = $blob;
        the object will create all missing tree nodes in the path by itself, it replaces your updateNode function and removes all the juggling with the array of nodes which updateNode returns. GitTree::write will take care of all newly created GitTree elements.
    
    - modified GitCommit object:
      - a cloned GitCommit can be used to make a modification to the repository, see the code below as an example
    
            $branch = $repo->getBranch('master');
            $commit = new GitCommit($branch->getTip());
    
            foreach ($stash as $path => $data)
            {
              $blob = new GitBlob($repo);
              $blob->data = $data;
              $commit[$path] = $blob;
            }
    
            $formValues = $form->getValues();
            $stamp = new GitCommitStamp($formValues['author']);
            $commit->author = $stamp;
            $commit->committer = $stamp;
            $commit->setMessage($formValues['summary']);
    
            $branch->updateTipTo($commit);  // writes all changes to disk
    
    - introduced GitBranch object:
      - this resembles a branch in the repository
      - it eases writing a new commit to the tip of the branch
      - it makes the API more clear
      - is maybe the place to test a new commit if it's a conflict commit, fastforward or tip
      - it's accessible by ArrayAccess
          $git = new Git($dir);
          $masterBranch = $git['master'];
      - setting a branch to a commit will save the commit as the new tip
          $commit = new GitCommit(...);
          $git['master'] = $commit;
          // the master branch is now updated to Commit $commit, the commit is saved
    
    - I changed indentation and code style to the symfony guidelines, it's the framework I develop in.
    
    TODO:
    - testing the mode of GitPathObject
    - testing the test for FastForward merge and creating conflict branch
    - test GitTree::treediff code
    - work out a bug on
    - write docs & more unit tests
    ssured committed Aug 25, 2009
Commits on Jun 2, 2009