* Removing the trailing "/.git" from gitweb display?
@ 2009-05-15 20:49 Timur Tabi
2009-05-15 21:14 ` J.H.
2009-05-15 21:17 ` [PATCH] gitweb: Document that gitweb deals with bare repositories Jakub Narebski
0 siblings, 2 replies; 8+ messages in thread
From: Timur Tabi @ 2009-05-15 20:49 UTC (permalink / raw)
To: git
I noticed that most gitweb pages show their repositories like this:
bluetooth/bluez-gnome.git Bluetooth applications for ... Marcel Holtmann
bluetooth/bluez-hcidump.git Bluetooth packet analyzer Marcel Holtmann
bluetooth/bluez.git Bluetooth protocol stack for ... Marcel Holtmann
However, mine looks like this:
alsa.1862/.git 8610 audio: fabric driver uses wrong DMA channels for... Timur
alsa.2598/.git 8610 audio: migrate ASoC V2 drivers to mainline Timur
alsa.3313/.git Introduce spin_event_timeout() Timur
Notice how my repositories have a trailing "/.git" to them? How do I
get rid of that?
My gitweb.conf is:
$projectroot = '/home/b04825/git/';
$site_name = "Timur Tabi's git repositories";
$home_link = $my_uri;
@stylesheets = ("gitweb.css");
$favicon = "git-favicon.png";
$logo = "git-logo.png";
$projects_list = '/home/b04825/git/projects_list';
$projects_list_description_width = 50;
And /home/b04825/git/projects_list looks like:
alsa.1862/.git Timur
alsa.2598/.git Timur
alsa.3313/.git Timur
I presume the reason why gitweb shows the trailing "/.git" is because
that's what my projects_list file contains. However, if I remove the
"/.git" from projects_list, gitweb can't find any repositories.
--
Timur Tabi
Linux kernel developer at Freescale
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Removing the trailing "/.git" from gitweb display?
2009-05-15 20:49 Removing the trailing "/.git" from gitweb display? Timur Tabi
@ 2009-05-15 21:14 ` J.H.
2009-05-15 21:17 ` [PATCH] gitweb: Document that gitweb deals with bare repositories Jakub Narebski
1 sibling, 0 replies; 8+ messages in thread
From: J.H. @ 2009-05-15 21:14 UTC (permalink / raw)
To: Timur Tabi; +Cc: git
Your actually barking up two separate trees / issues here.
Timur Tabi wrote:
> I noticed that most gitweb pages show their repositories like this:
>
> bluetooth/bluez-gnome.git Bluetooth applications for ... Marcel Holtmann
> bluetooth/bluez-hcidump.git Bluetooth packet analyzer Marcel Holtmann
> bluetooth/bluez.git Bluetooth protocol stack for ... Marcel Holtmann
I'm going to assume you pulled this off of kernel.org, but the basic
reason here is that we use the <project>.git moniker as a standard to
designate that the underlying directory is a bare git repo. That's
really it there. We do have a script that wanders our directory
structure and looks or directories based on the <project>.git so that's
a bit required from our perspective.
>
> However, mine looks like this:
>
> alsa.1862/.git 8610 audio: fabric driver uses wrong DMA channels for... Timur
> alsa.2598/.git 8610 audio: migrate ASoC V2 drivers to mainline Timur
> alsa.3313/.git Introduce spin_event_timeout() Timur
If your doing that, then your putting a full git tree into gitweb as
opposed to a bare repo. I would suggest only putting a bare repo.
>
> Notice how my repositories have a trailing "/.git" to them? How do I
> get rid of that?
>
> My gitweb.conf is:
>
> $projectroot = '/home/b04825/git/';
> $site_name = "Timur Tabi's git repositories";
> $home_link = $my_uri;
> @stylesheets = ("gitweb.css");
> $favicon = "git-favicon.png";
> $logo = "git-logo.png";
> $projects_list = '/home/b04825/git/projects_list';
> $projects_list_description_width = 50;
>
> And /home/b04825/git/projects_list looks like:
>
> alsa.1862/.git Timur
> alsa.2598/.git Timur
> alsa.3313/.git Timur
>
> I presume the reason why gitweb shows the trailing "/.git" is because
> that's what my projects_list file contains. However, if I remove the
> "/.git" from projects_list, gitweb can't find any repositories.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] gitweb: Document that gitweb deals with bare repositories
2009-05-15 20:49 Removing the trailing "/.git" from gitweb display? Timur Tabi
2009-05-15 21:14 ` J.H.
@ 2009-05-15 21:17 ` Jakub Narebski
2009-05-15 21:24 ` Timur Tabi
1 sibling, 1 reply; 8+ messages in thread
From: Jakub Narebski @ 2009-05-15 21:17 UTC (permalink / raw)
Cc: git, Timur Tabi
Add reminders to gitweb/README and gitweb/INSTALL that gitweb works
with bare repositories. While it might be obvious to us, it is not
apparently as evident for newcomers.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
Timur Tabi wrote:
> I noticed that most gitweb pages show their repositories like this:
>
> bluetooth/bluez-gnome.git Bluetooth applications for ... Marcel Holtmann
> bluetooth/bluez-hcidump.git Bluetooth packet analyzer Marcel Holtmann
> bluetooth/bluez.git Bluetooth protocol stack for... Marcel Holtmann
>
> However, mine looks like this:
>
> alsa.1862/.git 8610 audio: fabric driver uses wrong DMA channels for... Timur
> alsa.2598/.git 8610 audio: migrate ASoC V2 drivers to mainline Timur
> alsa.3313/.git Introduce spin_event_timeout() Timur
>
> Notice how my repositories have a trailing "/.git" to them? How do I
> get rid of that?
>
> My gitweb.conf is:
>
> $projectroot = '/home/b04825/git/';
> $site_name = "Timur Tabi's git repositories";
> $home_link = $my_uri;
> @stylesheets = ("gitweb.css");
> $favicon = "git-favicon.png";
> $logo = "git-logo.png";
> $projects_list = '/home/b04825/git/projects_list';
> $projects_list_description_width = 50;
>
> And /home/b04825/git/projects_list looks like:
>
> alsa.1862/.git Timur
> alsa.2598/.git Timur
> alsa.3313/.git Timur
>
> I presume the reason why gitweb shows the trailing "/.git" is because
> that's what my projects_list file contains. However, if I remove the
> "/.git" from projects_list, gitweb can't find any repositories.
Does this explanation help?
gitweb/INSTALL | 14 ++++++++++++++
gitweb/README | 12 +++++++-----
2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/gitweb/INSTALL b/gitweb/INSTALL
index 18c9ce3..f43e233 100644
--- a/gitweb/INSTALL
+++ b/gitweb/INSTALL
@@ -127,6 +127,20 @@ GITWEB_CONFIG file:
Gitweb repositories
-------------------
+- Gitweb deals with bare repositories, which means that gitweb scans for
+ (in the case where $projects_list is a directory to search for
+ repositories) or has to be provided with list of (in the case where
+ $projects_list is a text file) bare repositories, i.e. $GIT_DIR for
+ each repository. The consequence of that is the fact that if you use
+ gitweb to view non-bare repository named 'repo' then gitweb would show
+ (or would have to be provided with) 'repo/.git'.
+
+ If you want to view a buch of non-bare repositories in gitweb but want
+ them named 'repo.git' as is the standard for bare repositories, you
+ can as a workaround populare $projectroot / $project_list with
+ symbolic links to $GIT_DIR of each project you want to publish (have
+ shown) in gitweb.
+
- By default all git repositories under projectroot are visible and
available to gitweb. The list of projects is generated by default by
scanning the projectroot directory for git repositories (for object
diff --git a/gitweb/README b/gitweb/README
index ccda890..a61fa2f 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -34,10 +34,11 @@ You can specify the following configuration variables when building GIT:
* GITWEB_LIST
Points to a directory to scan for projects (defaults to project root
if not set / if empty) or to a file with explicit listing of projects
- (together with projects' ownership). See "Generating projects list
- using gitweb" in INSTALL file for gitweb to find out how to generate
- such file from scan of a directory. [No default, which means use root
- directory for projects]
+ (together with projects' ownership). Note that gitweb deals with bare
+ repositories; it shows/uses $GIT_DIR for each repository. See also
+ "Generating projects list using gitweb" in INSTALL file for gitweb to
+ find out how to generate such file from scan of a directory.
+ [No default, which means use root directory for projects]
* GITWEB_EXPORT_OK
Show repository only if this file exists (in repository). Only
effective if this variable evaluates to true. [No default / Not set]
@@ -153,7 +154,8 @@ not include variables usually directly set during build):
Absolute filesystem path which will be prepended to project path;
the path to repository is $projectroot/$project. Set to
$GITWEB_PROJECTROOT during installation. This variable have to be
- set correctly for gitweb to find repositories.
+ set correctly for gitweb to find repositories. (Note that gitweb deals
+ with bare repositories.)
* $projects_list
Source of projects list, either directory to scan, or text file
with list of repositories (in the "<URI-encoded repository path> SP
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] gitweb: Document that gitweb deals with bare repositories
2009-05-15 21:17 ` [PATCH] gitweb: Document that gitweb deals with bare repositories Jakub Narebski
@ 2009-05-15 21:24 ` Timur Tabi
2009-05-15 21:36 ` Jakub Narebski
0 siblings, 1 reply; 8+ messages in thread
From: Timur Tabi @ 2009-05-15 21:24 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
Jakub Narebski wrote:
> Does this explanation help?
Yes, it does, but I wish it weren't true. I don't see why gitweb can't be enhanced to support non-bare repositories without using symlinks or other hackery.
To avoid the overhead of gitweb scanning all of my repositories for other respitories, I use a packages_list, which is automatically recreated whenever I add a new repo. However, I think having to create a shadow bare repository with a cron job to keep it more-or-less update is wrong.
Just my two cents.
--
Timur Tabi
Linux kernel developer at Freescale
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] gitweb: Document that gitweb deals with bare repositories
2009-05-15 21:24 ` Timur Tabi
@ 2009-05-15 21:36 ` Jakub Narebski
2009-05-15 22:21 ` Timur Tabi
0 siblings, 1 reply; 8+ messages in thread
From: Jakub Narebski @ 2009-05-15 21:36 UTC (permalink / raw)
To: Timur Tabi; +Cc: git
On Fri, 15 May 2009, Timur Tabi wrote:
> Jakub Narebski wrote:
>
> > Does this explanation help?
>
> Yes, it does, but I wish it weren't true. I don't see why gitweb
> can't be enhanced to support non-bare repositories without using
> symlinks or other hackery.
Actually the patch I have sent is not formulated as well as I wish.
That is why I didn't send it earlier (and I probably should have marked
it as RFC; still it is better than now).
Gitweb can deal with non-bare repositories. It is only that because
gitweb is not interested in working area, it shows $GIT_DIR (path to
repository itself) as name/path to repository. Therefore repo/.git
for non-bare repositories, because it is repository itself that matters.
>
> To avoid the overhead of gitweb scanning all of my repositories for
> other respitories, I use a packages_list, which is automatically
> recreated whenever I add a new repo. However, I think having to
> create a shadow bare repository with a cron job to keep it
> more-or-less update is wrong.
If you use gitweb only for yourself, take a look at git-instaweb
If you provide access for others, i.e. if those repositories shown in
gitweb are public repositories, it is much better to use bare
repositories for that.
--
Jakub Narebski
Poland
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] gitweb: Document that gitweb deals with bare repositories
2009-05-15 21:36 ` Jakub Narebski
@ 2009-05-15 22:21 ` Timur Tabi
2009-05-16 2:29 ` Junio C Hamano
2009-05-16 8:14 ` Jakub Narebski
0 siblings, 2 replies; 8+ messages in thread
From: Timur Tabi @ 2009-05-15 22:21 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
On Fri, May 15, 2009 at 4:36 PM, Jakub Narebski <jnareb@gmail.com> wrote:
> Gitweb can deal with non-bare repositories. It is only that because
> gitweb is not interested in working area, it shows $GIT_DIR (path to
> repository itself) as name/path to repository. Therefore repo/.git
> for non-bare repositories, because it is repository itself that matters.
I understand that, but why does gitweb have to punish me because I
give it more than it cares about?
> If you provide access for others, i.e. if those repositories shown in
> gitweb are public repositories, it is much better to use bare
> repositories for that.
Why? What difference does it make if they clone directly from my
working tree, instead of some shadow repository?
--
Timur Tabi
Linux kernel developer at Freescale
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] gitweb: Document that gitweb deals with bare repositories
2009-05-15 22:21 ` Timur Tabi
@ 2009-05-16 2:29 ` Junio C Hamano
2009-05-16 8:14 ` Jakub Narebski
1 sibling, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2009-05-16 2:29 UTC (permalink / raw)
To: Timur Tabi; +Cc: Jakub Narebski, git
Timur Tabi <timur@freescale.com> writes:
>> If you provide access for others, i.e. if those repositories shown in
>> gitweb are public repositories, it is much better to use bare
>> repositories for that.
>
> Why? What difference does it make if they clone directly from my
> working tree, instead of some shadow repository?
There is none.
Even though I would not personally publish the live repository I
personally work in via gitweb, I do not think that has to be a holy rule
not to be broken by anybody. Some people may want to show state of a live
tree, and other people may be willing to peek into it. I do not think it
is worth spending excess effort beyond giving one educational advice like
Jakub did to prevent them from doing so. It's their choice. While they
may have to live with the consequence of such an arrangement, other people
won't be harmed (I do not think it is such a big deal for them to deal
with the fallout either).
I personally would not mind peeking into such a gitweb, but I would really
hesitate to fetch from a repository that is known to be live. The commits
I would see there right now are not likely to be in the finished form (the
live repository owner may want to amend them). The repository owner may
promise "I'll keep them stable and never amend", but that is worse, at
least from my point of view, as nobody is perfect and the resulting
history in such a live repository is bound to be full of crufts I'd rather
not have to wade through.
It is a very useful coalmine canary to see the path in gitweb ending with
slash dot git like /home/tt/foo/.git, not /home/tt/foo.git, for me to be
able to tell which is which. If it is a bare repository without a work
tree, as long as the repository owner has graduated the CVS mentality and
acquired a good habit of not pushing things too hastily, there is a chance
that the history I would see there is reviewed by the author and cleaned
up to be presentable.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] gitweb: Document that gitweb deals with bare repositories
2009-05-15 22:21 ` Timur Tabi
2009-05-16 2:29 ` Junio C Hamano
@ 2009-05-16 8:14 ` Jakub Narebski
1 sibling, 0 replies; 8+ messages in thread
From: Jakub Narebski @ 2009-05-16 8:14 UTC (permalink / raw)
To: Timur Tabi; +Cc: git
On Sat, 16 May 2009, Timur Tabi wrote:
> On Fri, May 15, 2009 at 4:36 PM, Jakub Narebski <jnareb@gmail.com> wrote:
> > Gitweb can deal with non-bare repositories. It is only that because
> > gitweb is not interested in working area, it shows $GIT_DIR (path to
> > repository itself) as name/path to repository. Therefore repo/.git
> > for non-bare repositories, because it is repository itself that matters.
>
> I understand that, but why does gitweb have to punish me because I
> give it more than it cares about?
Gitweb doesn't punish you for using non-bare repositories. Gitweb is
just consistent: all that matters to gitweb is repository itself
($GIT_DIR), therefore it uses 'project/.git' as a project name for
non-bare, because this is $GIT_DIR for it.
Besides, why do you care that your non-bare repositories have
'project/.git' as their name? As Junio wrote it is a good idea to be
able to distinguish between bare and non-bare repositories. Perhaps
I should remove description of workaround from the patch...
Anyway I'd rather not complicate further 6336 lines long
gitweb/gitweb.perl, one of largest scripts in git repository. One would
have to add stripping s!/\.git$!! from repository path (project name)
on display, and do additional check for $path/.git when checking if
what we were given looks like git repository.
>
> > If you provide access for others, i.e. if those repositories shown in
> > gitweb are public repositories, it is much better to use bare
> > repositories for that.
>
> Why? What difference does it make if they clone directly from my
> working tree, instead of some shadow repository?
Well, best practice is to not change (rewrite) published history. This
means that you very strongly shouldn't even use "git commit --amend",
neverthemind "git rebase" and reordering patches and squashing bugfixes
using "git rebase --interactive" (or other tools like StGit or Guilt)
on the branches you meant to share. Because otherwise you would seriously
inconvenience developers which base their work your work on
shared/published branch.
Also you should take into account that if you publish your working,
non-bare repositories, all your branches are visible to the world.
So unless you tell other developers which branches are meant to share,
and which are not, you would have trouble with working on topic branches.
And for more complicated features best practices demand that you do them
as a series of commits rather than one big complicated patch on feature
branch, and it is hard to create a perfect, or just good (so it doesn't
look like "A, B, oops fix A, C, oops revert B, oops fix C"), series of
commits on first try. And there is also bit of complication for other
developers if you, as best practices tell you should, delete no longer
used (merged in) short term feature branches; this would require pruning
remote-tracking branches by other developers.
So unless you work by yourself (and then see git-instaweb), it is really
better to have separate public publishing repository, which is bare.
--
Jakub Narebski
Poland
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-05-16 8:14 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-15 20:49 Removing the trailing "/.git" from gitweb display? Timur Tabi
2009-05-15 21:14 ` J.H.
2009-05-15 21:17 ` [PATCH] gitweb: Document that gitweb deals with bare repositories Jakub Narebski
2009-05-15 21:24 ` Timur Tabi
2009-05-15 21:36 ` Jakub Narebski
2009-05-15 22:21 ` Timur Tabi
2009-05-16 2:29 ` Junio C Hamano
2009-05-16 8:14 ` Jakub Narebski
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).