anchor.diff:  
     static Future smartCheckout(chrome.DirectoryEntry dir, ObjectStore store,
         TreeObject oldTree, TreeObject newTree) {
  -    TreeDiffResult diff = Merge.diffTree(oldTree, newTree);
  -    return Future.forEach(diff.adds, (TreeEntry entry) {
  +    TreeDiffResult diff = Diff.diffTree(oldTree, newTree);
  +    return Future.forEach(diff.getAddedEntries(), (DiffEntry diffEntry) {
  +      TreeEntry entry = diffEntry.newEntry;
         if (entry.isBlob) {
           return ObjectUtils.expandBlob(dir, store, entry.name, entry.sha);
         } else {
  
positive.code:         });
        }
      }).then((_) {
        return Future.forEach(diff.removes, (TreeEntry entry) {
          return _removeEntryRecursively(store, dir, entry);
        }).then((_) {
          return Future.forEach(diff.merges, (mergeEntry) {
            TreeEntry oldEntry = mergeEntry['old'];
            TreeEntry newEntry = mergeEntry['new'];
            if (newEntry.isBlob) {
              return ObjectUtils.expandBlob(dir, store, newEntry.name,
                  newEntry.sha);
  
negative.code: 
  import 'package:chrome/chrome_app.dart' as chrome;
  
  import 'diff.dart';
  import '../constants.dart';
  import '../exception.dart';
  import '../file_operations.dart';
  