Mirroring gitolite
A long time ago I wrote an article about how to install gitolite. Yesterday an article popped up in my feed reader that shows a short script on how to mirroring gitolite servers.
Since I wrote my custom script once I had set up gitolite, I was a bit curious about the differences to my script today. So I checked the referred script and noticed some problems that probably occur over the time:
- New branches on the remote are not fetched
- New tags on the remote are not fetched
- Using working copies results in way larger mirrors
As one can see, the script lacks some major features.
#!/bin/bash
# Copyright (c) 2011-2013 Markus Holtermann
# MIT License: http://download.markusholtermann.eu/MIT.txt
BACKUP_DIR=/data/git-mirror/
REMOTE=git@git.example.com
if [ ! -d "${BACKUP_DIR}" ] ; then
mkdir -p "${BACKUP_DIR}"
fi
cd "${BACKUP_DIR}"
for repo in $(ssh ${REMOTE} 2> /dev/null | grep -e "^\s\+R" | sed -e 's/\r//g' | awk '{print $3}')
do
if [[ -d ${repo}.git ]] ; then
cd ${repo}.git
echo "Updating ${REMOTE}:${repo} ..."
git fetch --all
echo " ... done"
cd -
else
echo "Cloning ${REMOTE}:${repo} ..."
git clone --mirror ${REMOTE}:${repo}.git
echo " ... done"
fi
done
The magic to prevent working directories ...
This article was published on 02/18/2013 noon and is stored in the category Linux.
It is tagged with
Bash,
Git,
Network,
Server
There are 0 comments.
Pictures from NYC
Yesterday a friend of mine asked around if someone has ever been in New York City. I replied and promised him to show some of my favorite pictures from my last trip to NYC in summer 2009. Looking through the more than 1000 photos from those days, I picked the following 8.
Enjoy them!
View from the Empire State Building to Midtown Manhattan and Central Park:
View from the Staten Island Ferries to Downtown Manhattan:
View from the Staten Island Ferries to the Statue of Liberty:
View from the Staten Island Ferries to the Statue of Liberty:
View from the Staten Island Ferries to Downtown Manhattan:
View from the Staten Island Ferries to Downtown Manhattan:
View from the Staten Island Ferries to Downtown Manhattan:
View from a Circle Line Harbor Cruise towards Ellis Island:
These images are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
This article was published on 01/15/2013 9 a.m. and is stored in the category Allgemein.
It is tagged with
Holiday
There are 0 comments.
KDE 4.10 RC1 is out
Two days ago the KDE team released the first release candidate of the Plasma Workspaces towards version 4.10. The biggest changes that directly catches ones eyes are the graphical modifications and improvements. For me they look much more seamless. I also like the new wallpaper. Looking under to hood, there are many changes. I just want to point out my most favorite ones:
- A new QtQuick based screen locker.
- Scriptable effects – One can easily write desktop effects without knowledge of C/C++
- The notification applet is now based on QML and feels much smoother
- The Nepomuk Indexer has been rewritten and is much faster as far as I can see.
Of course there are many, many more changes.
This article was published on 12/21/2012 10 a.m. and is stored in the category Linux.
It is tagged with
KDE
There are 2 comments.
[CloudRAID] 6. Conclusion and Outlook
This post is the last post of the blog series about the student research paper CloudRAID.
This is the last part of the student research paper about CloudRAID. Florian summarizes the pros and cons of our implementation. Furthermore he shows some ideas that could make CloudRAID more convenient, e.g. adding a search possibility.
This article was published on 11/21/2012 6:28 p.m. and is stored in the category Development.
It is tagged with
Apache,
Cluster,
Eclipse,
Encryption,
Java,
Network,
Security,
Server,
Studium
There are 0 comments.
[CloudRAID] 5. Benchmarks
This post is a continuation of the blog series about the student research paper CloudRAID.
Since the performance is an integral part and a key aspect of the software and even more one of the most important piece, the following chapter will show some performance tests and benchmark results.
In order to make the benchmarks reproducible this chapter will set up some benchmark environments. They define the hardware as well as the software that is used for the benchmark tests.
Environment 1:
- CPU: Intel® Core™ 2 Duo CPU P8600 @ 2.40 GHz
- RAM: 4 GiB
- Hard disk: Samsung HM320II, 16 MiB Cache
- File system: ext4, Block size: 4096 Byte
- Disk Encryption: LUKS, cipher: aes-xts-plain, 512 bits
- Disk Management: LVM: 2.02.88(2), Library: 1.02.67 Driver: 4.22.0
- Operating System: Arch Linux 64bit
Environment 2:
- CPU: Intel® Core™ 2 Duo CPU E6600 @ 2.40 GHz
- RAM: 2 GiB
- Hard disk: 2x Samsung SpinPoint HD501LJ, 16 MiB Cache
- File system: ext4, Block size: 4096 Byte
- Disk Encryption: LUKS, cipher: aes-xts-plain, 512 bits
- Disk Management: LVM: 2.02.88(2), Library: 1.02.67 Driver: 4.22.0
- RAID: Software RAID 1, mdadm 3 ...
This article was published on 11/21/2012 6 p.m. and is stored in the category Development.
It is tagged with
Apache,
C/C++,
Cluster,
Eclipse,
Encryption,
Java,
Network,
Security,
Server,
Studium
There are 0 comments.
[CloudRAID] 4. Implementation (Continuation 2)
This post is a continuation of the blog series about the student research paper CloudRAID.
After the implementation of the CloudRAID backend has been introduced and the specification of the REST API endpoints is published, Florian is describing the compression API and the client application on his blog in a new post.
This article was published on 11/18/2012 6:40 p.m. and is stored in the category Development.
It is tagged with
Apache,
Cluster,
Eclipse,
Encryption,
Java,
Security,
Server,
Studium
There are 0 comments.
[CloudRAID] 4. Implementation (Continuation)
This post is a continuation of the blog series about the student research paper CloudRAID.
The default CloudRAID package contains a RESTful HTTP API. This is realized using Java Servlets. A Java web and application server will be used to deploy the servlet. To activate the servlet this is bound to a base path that will be required to be prefixed to the Uniform Resource Locator (URL) path. The actual functionality provided by this servlet will then be bound to sub paths as described in chapters 4.2.2 to 4.2.4 (see below). The basic concept of how the mapping between the sub paths and URL parameters is done, has been taken from the Django Project (URL dispatcher: https://docs.djangoproject.com/en/1.4/topics/http/urls/).
The complete pattern and mapping implementation is done in the class RestApiUrlMapping within the package de.dhbw_mannheim.cloudraid.api.impl and is part of the CloudRAID-REST bundle. The RestApiUrlMapping constructor takes two to four parameter of various type as one can see in listing 9 below:
- The first parameter must be the pattern ...
This article was published on 11/15/2012 6 p.m. and is stored in the category Development.
It is tagged with
Apache,
Cluster,
Eclipse,
Encryption,
Java,
Security,
Server,
Studium
There are 0 comments.
[CloudRAID] 4. Implementation
This post is a continuation of the blog series about the student research paper CloudRAID.
After Florian's publications about the architecture the concrete implementation design will follow.
The supplied RAID 5 implementation uses SHA-256 for integrity and validity checks. The hash implementation has been taken from the Apache Portable Runtime Project (APR) that has been published by the Apache Software Foundation under the terms of the Apache License version 2.0.
The native RAID 5 level implementation uses multiple pre-compiler flags and constants to control the split and merge processes:
- RAID5BLOCKSIZE specifies how many bytes the library will write at once to each device file (default 1024 bytes). Hence RAID5BLOCKSIZE × 2 bytes are read at once from the input file.
- Normally all data will be encrypted before it is being split into the device files. This can be changed by setting ENCRYPT_DATA to 0.
- The constant ENCRYPTION_SALT_BYTES specifies the size of the salt in bytes. The default value is 256.
- For debugging purposes, the DEBUG constant can be set. There are three debug levels possible, where 1 prints minimum debug information and 3 all. A value ...
This article was published on 11/13/2012 6 p.m. and is stored in the category Development.
It is tagged with
Apache,
C/C++,
Cluster,
Eclipse,
Encryption,
Java,
Network,
Security,
Server,
Studium
There are 0 comments.
[CloudRAID] 3. Concept (Continuation)
This post is a continuation of the blog series about the student research paper CloudRAID.
With some delay I can announce the closing chapter for the architectural backgrounds of CloudRAID. Florian published the rest of chapter “3.3. Server Architecture” and the internals of the “3.4. Client Application”.
This article was published on 11/09/2012 8 p.m. and is stored in the category Development.
It is tagged with
Apache,
Cluster,
Eclipse,
Encryption,
Java,
Network,
Security,
Server,
Studium
There are 0 comments.
[CloudRAID] 3. Concept
This post is a continuation of the blog series about the student research paper CloudRAID.
I'm happy to announce the next part of our student research paper. Today Florian presents the beginning of the third chapter that is all about the concept behind CloudRAID. His post covers the “Requirements” that need to be fulfilled, the “General Architecture” of the server application and also gives some insight on the “Server Architecture”.
This article was published on 11/07/2012 7:20 p.m. and is stored in the category Development.
It is tagged with
Apache,
C/C++,
Cluster,
Eclipse,
Encryption,
Java,
Network,
Security,
Server,
Studium
There are 0 comments.








