Browse Source

Ensure the repository model ref list is refreshed on ref creation or deletion

tags/v1.5.1
James Moger 10 years ago
parent
commit
ce07c4f4ca

+ 1
- 0
releases.moxie View File

@@ -16,6 +16,7 @@ r23: {
- Fix forcing default locale to en or LANG_CC for web ui (ticket-51)
- Fix inconsistency with repository ownership permission checking (ticket-52)
- Prevent submission from New|Edit ticket page with empty titles (ticket-53)
- Ensure the repository model ref list is refreshed on ref creation or deletion (ticket-54)
- Fix case-sensitivity error in determining fork network (issue-420, ticket-62)
- Fix transport determination for SSH urls served on port 22 (issue-421, ticket-63)
changes:

+ 8
- 0
src/main/java/com/gitblit/git/GitblitReceivePack.java View File

@@ -331,6 +331,8 @@ public class GitblitReceivePack extends ReceivePack implements PreReceiveHook, P
return;
}
boolean isRefCreationOrDeletion = false;
// log ref changes
for (ReceiveCommand cmd : commands) {
@@ -339,9 +341,11 @@ public class GitblitReceivePack extends ReceivePack implements PreReceiveHook, P
switch (cmd.getType()) {
case DELETE:
LOGGER.info(MessageFormat.format("{0} DELETED {1} in {2} ({3})", user.username, cmd.getRefName(), repository.name, cmd.getOldId().name()));
isRefCreationOrDeletion = true;
break;
case CREATE:
LOGGER.info(MessageFormat.format("{0} CREATED {1} in {2}", user.username, cmd.getRefName(), repository.name));
isRefCreationOrDeletion = true;
break;
case UPDATE:
LOGGER.info(MessageFormat.format("{0} UPDATED {1} in {2} (from {3} to {4})", user.username, cmd.getRefName(), repository.name, cmd.getOldId().name(), cmd.getNewId().name()));
@@ -355,6 +359,10 @@ public class GitblitReceivePack extends ReceivePack implements PreReceiveHook, P
}
}
if (isRefCreationOrDeletion) {
gitblit.resetRepositoryCache(repository.name);
}
if (repository.useIncrementalPushTags) {
// tag each pushed branch tip
String emailAddress = user.emailAddress == null ? rp.getRefLogIdent().getEmailAddress() : user.emailAddress;

+ 5
- 0
src/main/java/com/gitblit/manager/GitblitManager.java View File

@@ -928,6 +928,11 @@ public class GitblitManager implements IGitblit {
repositoryManager.resetRepositoryListCache();
}

@Override
public void resetRepositoryCache(String repositoryName) {
repositoryManager.resetRepositoryCache(repositoryName);
}

@Override
public List<String> getRepositoryList() {
return repositoryManager.getRepositoryList();

+ 8
- 0
src/main/java/com/gitblit/manager/IRepositoryManager.java View File

@@ -158,6 +158,14 @@ public interface IRepositoryManager extends IManager {
*/
void resetRepositoryListCache();

/**
* Reset all caches for this repository.
*
* @param repositoryName
* @since 1.5.1
*/
void resetRepositoryCache(String repositoryName);

/**
* Returns the list of all repositories available to Gitblit. This method
* does not consider user access permissions.

+ 12
- 0
src/main/java/com/gitblit/manager/RepositoryManager.java View File

@@ -454,6 +454,18 @@ public class RepositoryManager implements IRepositoryManager {
CommitCache.instance().clear(repositoryName);
}

/**
* Reset all caches for this repository.
*
* @param repositoryName
* @since 1.5.1
*/
@Override
public void resetRepositoryCache(String repositoryName) {
removeFromCachedRepositoryList(repositoryName);
clearRepositoryMetadataCache(repositoryName);
}

/**
* Resets the repository list cache.
*

Loading…
Cancel
Save