From: richard.maw at gmail.com (Richard Maw)
Subject: [PATCH v3 09/21] Look up refs in namespace with cgit_get_sha1
Date: Mon, 1 Aug 2016 22:35:41 +0100 [thread overview]
Message-ID: <20160801213553.16807-10-richard.maw@gmail.com> (raw)
In-Reply-To: <20160801213553.16807-1-richard.maw@gmail.com>
This causes all ref resolving to look for the requested branch
inside the current namespace.
Previously any form of git revision would be accepted,
but ref resolving isn't namespace aware
and it would be infeasible to replicate all its behaviour,
so we stick to providing the most common cases
of a sha1, an absolute ref, or a partial ref.
Signed-off-by: Richard Maw <richard.maw at gmail.com>
---
shared.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/shared.c b/shared.c
index 77cb120..4c7bb9c 100644
--- a/shared.c
+++ b/shared.c
@@ -669,5 +669,19 @@ int cgit_namespaced_dwim_ref(const char *name, unsigned char *sha1, char **ref)
int cgit_get_sha1(const char *name, unsigned char *sha1)
{
+ /* TODO: If libgit's get_sha1_with_context gains a flag for namespace support,
+ change this function to call that appropriately. */
+ if (ctx.repo->namespace) {
+ /* If we have a namespace, we can get either a sha1,
+ or a possibly abbreviated ref.
+ Advanced ref forms are not supported at this time
+ as this would require reimplementing all of ref parsing.
+ If get_sha1_with_context grows support for a namespaced flag
+ then this code may go away. */
+ if (get_sha1_hex(name, sha1) == 0)
+ return 0;
+ return cgit_namespaced_dwim_ref(name, sha1, NULL) == 0;
+ }
+
return get_sha1(name, sha1);
}
--
2.9.0
next prev parent reply other threads:[~2016-08-01 21:35 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-01 21:35 [PATCH v3 00/21] Add namespace support to cgit richard.maw
2016-08-01 21:35 ` [PATCH v3 01/21] Return a copy of "master" when guessing defbranch fails richard.maw
2016-08-01 21:35 ` [PATCH v3 02/21] Fix archive generation richard.maw
2016-08-01 21:35 ` [PATCH v3 03/21] Add a wrapper for get_sha1 called cgit_get_sha1 richard.maw
2016-08-01 21:35 ` [PATCH v3 04/21] Parse repo.namespace richard.maw
2016-08-01 21:35 ` [PATCH v3 05/21] Print out parsed namespace on request richard.maw
2016-08-01 21:35 ` [PATCH v3 06/21] Set GIT_NAMESPACE when repo.namespace is provided richard.maw
2016-08-01 21:35 ` [PATCH v3 07/21] Add namespaced resolve ref helper richard.maw
2016-08-01 21:35 ` [PATCH v3 08/21] Add cgit_namespaced_dwim_ref for resolving short refs richard.maw
2016-08-01 21:35 ` richard.maw [this message]
2016-08-01 21:35 ` [PATCH v3 10/21] Use cgit_namespaced_dwim_ref for finding logs to show richard.maw
2016-08-01 21:35 ` [PATCH v3 11/21] Render commit decorations correctly richard.maw
2016-08-01 21:35 ` [PATCH v3 12/21] Guess the default branch based on current namespace richard.maw
2016-08-01 21:35 ` [PATCH v3 13/21] Add cgit_for_each_namespaced_ref_in helper richard.maw
2016-08-01 21:35 ` [PATCH v3 14/21] Find the default branch based on the contents of the namespace richard.maw
2016-08-01 21:35 ` [PATCH v3 15/21] Only display refs in current namespace richard.maw
2016-08-01 21:35 ` [PATCH v3 16/21] Add namespace support to dumb-clone richard.maw
2016-08-01 21:35 ` [PATCH v3 17/21] Display notes from namespace richard.maw
2016-08-20 14:51 ` richard.maw
2016-08-01 21:35 ` [PATCH v3 18/21] Add documentation for repo.namespace richard.maw
2016-08-01 21:35 ` [PATCH v3 19/21] Allow agefile to be set per-repository richard.maw
2016-08-01 21:35 ` [PATCH v3 20/21] Update contrib script to update agefiles per namespace richard.maw
2016-08-01 21:35 ` [PATCH v3 21/21] Add documentation for repo.agefile richard.maw
2016-08-20 16:01 ` [PATCH v3 00/21] Add namespace support to cgit richard.maw
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160801213553.16807-10-richard.maw@gmail.com \
--to=cgit@lists.zx2c4.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).