Where are physically stored the source files pushed to stash repository?

Arnaud CAZENOVE September 19, 2013

in order to define a proper disaster recovery and contigency procedure I need to know/understabd where/how are phiscally strored the file pushed to a stash repository.

2 answers

1 accepted

1 vote
Answer accepted
cofarrell
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 20, 2013

Hi Arnaud,

The repositories are stored under the $STASH_HOME/data/repositories directory:

https://confluence.atlassian.com/display/STASH/Stash+home+directory

As of Stash 2.7 we have released a backup client as well which might be useful.

https://confluence.atlassian.com/display/STASH/Data+recovery+and+backups

Cheers,

Charles

Arnaud CAZENOVE September 21, 2013

Hi Charles,

Thanks a lot for your quick answer.

This is what I thought at the begining (that the files should be somewhere under the stash-home directory). However looking to directories under $STASH_HOME/data I could not find any source file (.java files in my case).

I am using an external dtabase does it make any difference?

I even ran a find / -name "*.java" on my server and got only two files:

/home/stash/.java

/usr/share/atlassian-stash-2.4.2/work/Catalina/localhost/_/org/apache/jsp/fatal_jsp.java

Strange isn't it?

Cheers,

Arnaud

cofarrell
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 21, 2013

Hi Arnaud,

Not strange at all. The folders under $STASH_HOME/data/repositories are "bare" Git repositories, almost like mini databases, and as such you won't be able to see your files directly. Instead if you switch to any of the repositories you will be able to run git commands (ie git ls-files) as you would if you cloned them locally.

Cheers,

Charles

PS. Just as a word of warning I wouldn't recommend modifying those repositories directly, as that may cause Stash to misbehave.

Kabir Kochhar March 12, 2014

Charles,

I have the same question on how to see files under stash/data/repositories/1 although I do understand the structure is protected from direct interaction?

If I run git ls-files under stash/data/repositories/1 directory, it shows nothing although I could run other commands such as git branch which shows all the branches.

cofarrell
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 13, 2014

Hi Kabir,

ls-files is only going to show you working files. You can run 'git ls-tree --name-only -r HEAD' instead to see the same thing for a given branch/commit.

If you're writing a plugin/hook you can use our ContentService.streamDirectory() to achieve the same thing.

Cheers,

Charles

0 votes
Vanishree kumari March 12, 2014

In order to define a proper disaster recovery and contigency procedure, I need to know/understand where and how is the file physically stored that's pushed to a stash repository.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events