示例#1
0
  /**
   * Update the dumb client server info files.
   *
   * @throws Exception
   */
  public void updateServerInfo() throws Exception {
    if (db instanceof FileRepository) {
      final FileRepository fr = (FileRepository) db;
      RefWriter rw =
          new RefWriter(fr.getAllRefs().values()) {
            @Override
            protected void writeFile(final String name, final byte[] bin) throws IOException {
              File path = new File(fr.getDirectory(), name);
              TestRepository.this.writeFile(path, bin);
            }
          };
      rw.writePackedRefs();
      rw.writeInfoRefs();

      final StringBuilder w = new StringBuilder();
      for (PackFile p : fr.getObjectDatabase().getPacks()) {
        w.append("P ");
        w.append(p.getPackFile().getName());
        w.append('\n');
      }
      writeFile(
          new File(new File(fr.getObjectDatabase().getDirectory(), "info"), "packs"),
          Constants.encodeASCII(w.toString()));
    }
  }