Example #1
0
 public static Commit find(Repository repo, long commitId, Session session) {
   Commit c = (Commit) session.get(Commit.class, commitId);
   if (c == null) {
     return null;
   }
   if (c.getBranch().getRepository() != repo) {
     return null;
   }
   return c;
 }
  /**
   * Saves any changed items in the session by recalculating hashes and persisting new items to the
   * repository, and returns a list of root tree items which represent changed trees. That list will
   * contain the root of the tree which this session directly represents, but it will also contain
   * the roots of trees which have been affected through linked item updates
   *
   * @return
   */
  public String save(Profile currentUser) throws IOException {
    recalcHashes(rootDataNode);

    String newHash = rootDataNode.hash;

    Commit newCommit = new Commit();
    newCommit.setCreatedDate(currentDateService.getNow());
    newCommit.setEditor(currentUser);
    newCommit.setItemHash(newHash);
    session.save(newCommit);
    System.out.println("commit hash: " + newHash + " id " + newCommit.getId());
    branch.setHead(newCommit);
    session.save(branch);

    return rootDataNode.hash;
  }
 public DataSession(
     Branch branch,
     Session session,
     HashStore hashStore,
     BlobStore blobStore,
     CurrentDateService currentDateService) {
   this.blobStore = blobStore;
   this.hashStore = hashStore;
   this.session = session;
   this.branch = branch;
   this.currentDateService = currentDateService;
   Commit c = branch.latestVersion(session);
   String hash = null;
   if (c != null) {
     hash = c.getItemHash();
   }
   rootDataNode = new DirectoryNode(null, null, hash);
 }
  /**
   * Creates and saves a new branch, including setting up initial commit etc
   *
   * @param name
   * @param user
   * @param session
   * @return
   */
  public Branch createBranch(String name, Profile user, Session session) {
    Commit head = new Commit();
    head.setCreatedDate(new Date());
    head.setEditor(user);
    head.setItemHash(null);
    session.save(head);

    Branch b = new Branch();
    b.setName(Branch.TRUNK);
    b.setRepository(this);
    b.setHead(head);
    session.save(b);

    if (getBranches() == null) {
      setBranches(new ArrayList<Branch>());
    }
    getBranches().add(b);

    return b;
  }