summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2013-07-03 08:16:39 -0400
committerJames Moger <james.moger@gitblit.com>2013-07-03 08:16:39 -0400
commitabab3a4e2bc221eb358f846f171cb24fc0f687ad (patch)
tree7fad9337597d41bd71cf833ee0c36f493e830179 /src/main
parent316649013357fa5f355b19e429520bfd3036d2d0 (diff)
downloadgitblit-abab3a4e2bc221eb358f846f171cb24fc0f687ad.tar.gz
gitblit-abab3a4e2bc221eb358f846f171cb24fc0f687ad.zip
Support hot-reloading of project.mkd
Diffstat (limited to 'src/main')
-rw-r--r--src/main/distrib/data/git/project.mkd12
-rw-r--r--src/main/java/com/gitblit/GitBlit.java48
2 files changed, 39 insertions, 21 deletions
diff --git a/src/main/distrib/data/git/project.mkd b/src/main/distrib/data/git/project.mkd
new file mode 100644
index 00000000..851b57a3
--- /dev/null
+++ b/src/main/distrib/data/git/project.mkd
@@ -0,0 +1,12 @@
+This project contains all repositories created directly in the root of *git.repositoriesFolder*.
+
+This message is stored in *git.repositoriesFolder*/**project.mkd**
+
+#### Other Projects
+
+Each project, or repository group, may specify it's own message by defining a **project.mkd** file in the project folder.
+
+<pre>
+<i>git.repositoriesFolder</i>/projecta/<b>project.mkd</b>
+<i>git.repositoriesFolder</i>/projectb/<b>project.mkd</b>
+</pre>
diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index 1fd52f1a..ca21717c 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -1697,6 +1697,30 @@ public class GitBlit implements ServletContextListener {
return count;
}
+ private void reloadProjectMarkdown(ProjectModel project) {
+ // project markdown
+ File pmkd = new File(getRepositoriesFolder(), (project.isRoot ? "" : project.name) + "/project.mkd");
+ if (pmkd.exists()) {
+ Date lm = new Date(pmkd.lastModified());
+ if (!projectMarkdownCache.hasCurrent(project.name, lm)) {
+ String mkd = com.gitblit.utils.FileUtils.readContent(pmkd, "\n");
+ projectMarkdownCache.updateObject(project.name, lm, mkd);
+ }
+ project.projectMarkdown = projectMarkdownCache.getObject(project.name);
+ }
+
+ // project repositories markdown
+ File rmkd = new File(getRepositoriesFolder(), (project.isRoot ? "" : project.name) + "/repositories.mkd");
+ if (rmkd.exists()) {
+ Date lm = new Date(rmkd.lastModified());
+ if (!projectRepositoriesMarkdownCache.hasCurrent(project.name, lm)) {
+ String mkd = com.gitblit.utils.FileUtils.readContent(rmkd, "\n");
+ projectRepositoriesMarkdownCache.updateObject(project.name, lm, mkd);
+ }
+ project.repositoriesMarkdown = projectRepositoriesMarkdownCache.getObject(project.name);
+ }
+ }
+
/**
* Returns the map of project config. This map is cached and reloaded if
@@ -1731,27 +1755,7 @@ public class GitBlit implements ServletContextListener {
project.title = projectConfigs.getString("project", name, "title");
project.description = projectConfigs.getString("project", name, "description");
- // project markdown
- File pmkd = new File(getRepositoriesFolder(), (project.isRoot ? "" : name) + "/project.mkd");
- if (pmkd.exists()) {
- Date lm = new Date(pmkd.lastModified());
- if (!projectMarkdownCache.hasCurrent(name, lm)) {
- String mkd = com.gitblit.utils.FileUtils.readContent(pmkd, "\n");
- projectMarkdownCache.updateObject(name, lm, mkd);
- }
- project.projectMarkdown = projectMarkdownCache.getObject(name);
- }
-
- // project repositories markdown
- File rmkd = new File(getRepositoriesFolder(), (project.isRoot ? "" : name) + "/repositories.mkd");
- if (rmkd.exists()) {
- Date lm = new Date(rmkd.lastModified());
- if (!projectRepositoriesMarkdownCache.hasCurrent(name, lm)) {
- String mkd = com.gitblit.utils.FileUtils.readContent(rmkd, "\n");
- projectRepositoriesMarkdownCache.updateObject(name, lm, mkd);
- }
- project.repositoriesMarkdown = projectRepositoriesMarkdownCache.getObject(name);
- }
+ reloadProjectMarkdown(project);
configs.put(name.toLowerCase(), project);
}
@@ -1873,6 +1877,8 @@ public class GitBlit implements ServletContextListener {
// no repositories == no project
return null;
}
+
+ reloadProjectMarkdown(project);
return project;
}