| | |
| | | * @param path
|
| | | * @return content as a byte []
|
| | | */
|
| | | public static byte[] getByteContent(Repository repository, RevTree tree, final String path) {
|
| | | public static byte[] getByteContent(Repository repository, RevTree tree, final String path, boolean throwError) {
|
| | | RevWalk rw = new RevWalk(repository);
|
| | | TreeWalk tw = new TreeWalk(repository);
|
| | | tw.setFilter(PathFilterGroup.createFromStrings(Collections.singleton(path)));
|
| | |
| | | }
|
| | | }
|
| | | } catch (Throwable t) {
|
| | | error(t, repository, "{0} can't find {1} in tree {2}", path, tree.name());
|
| | | if (throwError) {
|
| | | error(t, repository, "{0} can't find {1} in tree {2}", path, tree.name());
|
| | | }
|
| | | } finally {
|
| | | rw.dispose();
|
| | | tw.release();
|
| | |
| | | * @return UTF-8 string content
|
| | | */
|
| | | public static String getStringContent(Repository repository, RevTree tree, String blobPath, String... charsets) {
|
| | | byte[] content = getByteContent(repository, tree, blobPath);
|
| | | byte[] content = getByteContent(repository, tree, blobPath, true);
|
| | | if (content == null) {
|
| | | return null;
|
| | | }
|
| | |
| | | int maxCount) {
|
| | | return getRefs(repository, Constants.R_NOTES, fullName, maxCount);
|
| | | }
|
| | | |
| | | /**
|
| | | * Returns the list of refs in the specified base ref. If repository does |
| | | * not exist or is empty, an empty list is returned.
|
| | | * |
| | | * @param repository
|
| | | * @param fullName
|
| | | * if true, /refs/yadayadayada is returned. If false,
|
| | | * yadayadayada is returned.
|
| | | * @return list of refs
|
| | | */
|
| | | public static List<RefModel> getRefs(Repository repository, String baseRef) {
|
| | | return getRefs(repository, baseRef, true, -1);
|
| | | }
|
| | |
|
| | | /**
|
| | | * Returns a list of references in the repository matching "refs". If the
|
| | |
| | | try {
|
| | | // search for the branch in local heads
|
| | | for (RefModel ref : JGitUtils.getLocalBranches(repository, false, -1)) {
|
| | | if (ref.displayName.endsWith(name)) {
|
| | | if (ref.reference.getName().endsWith(name)) {
|
| | | branch = ref;
|
| | | break;
|
| | | }
|
| | |
| | | // search for the branch in remote heads
|
| | | if (branch == null) {
|
| | | for (RefModel ref : JGitUtils.getRemoteBranches(repository, false, -1)) {
|
| | | if (ref.displayName.endsWith(name)) {
|
| | | if (ref.reference.getName().endsWith(name)) {
|
| | | branch = ref;
|
| | | break;
|
| | | }
|
| | |
| | | */
|
| | | public static List<SubmoduleModel> getSubmodules(Repository repository, RevTree tree) {
|
| | | List<SubmoduleModel> list = new ArrayList<SubmoduleModel>();
|
| | | byte [] blob = getByteContent(repository, tree, ".gitmodules");
|
| | | byte [] blob = getByteContent(repository, tree, ".gitmodules", false);
|
| | | if (blob == null) {
|
| | | return list;
|
| | | }
|
| | |
| | | }
|
| | | return success;
|
| | | }
|
| | | |
| | | /**
|
| | | * Reads the sparkleshare id, if present, from the repository.
|
| | | * |
| | | * @param repository
|
| | | * @return an id or null
|
| | | */
|
| | | public static String getSparkleshareId(Repository repository) {
|
| | | byte[] content = getByteContent(repository, null, ".sparkleshare", false);
|
| | | if (content == null) {
|
| | | return null;
|
| | | }
|
| | | return StringUtils.decodeString(content);
|
| | | }
|
| | | }
|