Manage Your Documents with Subversion

[ Saturday, 2 September 2006, michuk ]


Version control systems are commonly used by programmers. They allow for easy team work and version management. However their benefits can easily be exploited by regular users as well. This article’s purpose is to help you take advantage of Subversion at home to improve control over your own set of documents

Author: Borys Musielak
Translation: Szymon Bakowski
Correction: Mariusz Czyz, Michał Rutkowski

What is Subversion?

Subversion is a version control system, so let us explain what a version control system is, in the first place. According to Wikipedia:

Version control (also known as revision control or source control) is the management of multiple revisions of the same unit of information. It is most commonly used in engineering and software development to manage ongoing development of digital documents like application source code, art resources such as blueprints or electronic models and other critical information that may be worked on by a team of people. Changes to these documents are identified by incrementing an associated number or letter code, termed the “revision number”, “revision level”, or simply “revision” and associated historically with the person making the change.

In simple words, Subversion provides you with:

Subversion vs CVS
Subversion has been created in order to overcome vulnerabilities existing in obsolete but still very popular CVS. Subversion is more secure (security provided by ssl_mod module of Apache2 server) and bared a few annoying errors of CVS. Just to mention a few like lack of control over directory and metadata versioning, lack of transactional operations (either all the files are checked in or none of them). If you are interested, read more about the differences between Subversion and other version control systems.

  • better control over important documents,
  • secure access to your files from any place you can imagine,
  • means to easily edit your documents independently from any location without the need to worry about synchronization.

If you found the above features appealing, please read on about the technical details of using Subversion. Below we explain how to set up your own installation of Subversion and how to use it daily.

Why is Subversion useful?

How many times it happened that you accidentally deleted some important file or even worse, lost a phone number to a distant relative? How many times it happened that you wanted to access some important file but you forgot to copy it to your USB stick? Subversion is the right solution to these problems.

So how does it work? Well, it stores all your documents in a special repository. Every time you change a document which is in control of Subversion, it is marked as a new version. Subversion stores the log of changes (differences between versions) so that you can easily compare the document with its previous versions and get them back if needed.

What is more, with Subversion you can access and modify your important files from any place (e.g. Internet cafe, your work, or your friend’s house). You can work on them as if they were local. No more constantly checking if you work on the most recent version (did I copy the document to my USB drive after making that change?) because the current version of your file is always in the repository!

If you want, you can even share your selected files with friends or co-workers, letting them edit the files or just read their content. Actually, Subversion gets even more useful when multiple people need to work on one file since it allows for easy merging of the changes. This is why it has got so popular among programmers. But obviously its usefulness is not limited just to the IT industry.

Installation of Subversion

If you use a GNU/Linux distribution which provides good package management, you can safely assume that a Subversion package is available in the default repository. Note that in order to successfully run Subversion you will also need ((*)) Apache2 web server which provides authentication and a web interface.

Let’s take Debian or Ubuntu as an example (in other GNU/Linux distros the command will look slightly different but similar). Issuing the following command:

apt-get install apache2 subversion libapache2-svn \\
subversion-tools

should provide us with all the necessary software for setting up our home Subversion repository.

Apache2 vs Svnserve
You don’t need Apache in order to run Subversion. There is also a possibility to run Subversion as a standalone, autonomous server called svnserve. It runs as an inetd`s super-server or as a daemon with very simple authentication (it is possible to use SSH tunnel for that purpose as well). We are not going to get into details of that kind of installation in this article, but you can read more about svnserve in the SVN book.

Subversion configuration

At the beginning, we have to create a directory where we are going to store our SVN repositories. For example /home/subversion/public

That is only an example. You can set the Subversion root folder to any location, according to your preferences (e.g. /var/lib or directly in the root of your file system).

Next step involves setting up a new repository. Since we are planning to use it to store a whole bunch of scripts, commands, and many tips & tricks we have learned while using Linux, it will be called ‘faq’ (of course you can choose a different name). Shell command is as follows:

svnadmin create faq

Now the Subversion server is configured. The next step is to configure Apache2 so that you can access it securely from a remote location.

Apache2 configuration

Now, you are going to configure a web server – in your case – Apache2. You’ll generate a new SSL certificate, modify a few configuration files, and at the end, create Subversion users.


 Sample command-line session in Subversion

Pic 1. Sample command-line session in Subversion

Generating SSL certificate

Subversion uses SSL authentication provided by Apache2 (to be more precise by mod_ssl module of Apache2). In order to use that functionality you have to generate a SSL certificate by issuing the following command:

apache2-ssl-certificate -days 365

You are going to be asked a few simple questions: country code, city name and the name of the organization issuing the certificate (it can be i.e. your name or company). You also have to provide a server name (in our case: funky_seal). The generated certificate in most cases is saved to /etc/apache2/ssl/Apache2.pem file. If this is not the case, you should write down the full path of the generated file, as we are going to need it later on.

The -days option stands for the length of the certificate. The default is one month.

Notice that if may happen that the certificate script is not available in your distribution. In this case, you can use openssl command direclty. A sample command could look like this:

openssl req -new -newkey rsa:2048 -keyout key.pem -x509 \\
-set_serial 1000 -days 365 -out cert.pem
cat key.pem cert.pem >/etc/apache2/ssl/Apache2.pem

But you are encouraged to read the openssl manual before.

SSL support in Apache2

In order to activate SSL support in Apache2, you have to modify a line with Listen directive in /etc/apache2/ports.conf so that it looks like this:

Listen 443

.

That will make the server start listening on port 443 (which is the default SSL port).

Next step involves creating symbolic links to ssl.conf and ssl.load files (located in mods-available) in mods-enabled directory. These two commands will do:

ln -s /etc/apache2/mods-available/ssl.load \\
/etc/apache2/mods-enabled/
ln -s /etc/apache2/mods-available/ssl.conf \\
/etc/apache2/mods-enabled/

This step ensures that the modules responsible for SSL support will be read during the Apache2 start-up (only the files in mods_enabled folder are read during the Apache2 start-up).

Subversion support in Apache2

Activating Subversion support in Apache2 is similar to enabling SSL support. We have to create a link from /etc/apache2/mods-enabled/ to dav_svn.load which is located in /etc/apache2/mods-available:

ln -s /etc/apache2/mods-available/dav_svn.load \\
/etc/apache2/mods-enabled/

Modules responsible for Subversion support will be loaded during Apache’s start-up (together with other Apache2 modules). In our case, we are not going to additionally configure the dav_svn module (standard configuration is enough for our needs) and that is why the dav_svn.conf file doesn’t have to be linked against mods-enabled directory. Still, it can be linked if there is such need.

Virtual host configuration

This step involves creating a file named (for example) subversion in /etc/apache2/sites-available directory. As an example virtual host configuration file with short description of each directive is presented below:

<VirtualHost funky_seal:443>
# IP address and port – most commonly it is an IP address \\
and port 443 (SSL) of the hosting computer
# In our case, IP address belongs to our internal network \\
and available from outside world through port 443
# redirection on hardware firewall
# SVN administrator
ServerAdmin michuk@polishlinux.org
# Server name (e.g. host name)
ServerName funky_seal
# SSL activation
SSLEngine On
# SSL certificate file location SSLCertificateFile \\
/etc/apache2/ssl/Apache2.pem
# Set up public repository directory
# Directory privileges – access from everywhere \\
Order allow,deny
Allow from all
#Activation of svn_dav module instead of standard webdav \\
module DAV svn
# SVNParentPath to the directory with repositories
# (used in case of having more than one repository)
SVNParentPath /home/subversion/public
# Path to configuration path for access privileges for users \\
and user groups
AuthzSVNAccessFile \\
/etc/apache2/auth-files/public-svn-authzfile
# Use of HTTP Basic Authentication - ”Satisfy Any” manes \\
that svn is going
# to accept any authentication requirements that we will \\
impose
Satisfy Any
Require valid-user
AuthType Basic
# Authentication welcome banner
AuthName "polishlinux.org Subversion Repository"
# Location of hashed file containing users` passwords
AuthUserFile /home/subversion/.dav_svn.passwd
# Log level and error log file location
ErrorLog /var/log/Apache2/error.log
LogLevel warn
CustomLog /var/log/Apache2/access.log combined
</VirtualHost>

It is very important to pay your attention to these two directives:

  • AuthzSVNAccessFile /etc/apache2/auth-files/public-svn-authzfile
  • AuthUserFile /home/subversion/.dav_svn.passwd

In order to make our configuration active, we have to create the files mentioned above and then create symbolic links to them in /etc/apache2/sites-enabled directory:

ln -s /etc/apache2/sites-available/subversion \\
/etc/apache2/sites-enabled/

Repository access privileges

To be able to use SVN, we have to create users, who posses access privileges to download or modify the files in repositories. Apache’s htpasswd script will help us with it. Using htpasswd for the first time creates a password file (i.e. /home/subversion/.dav_svn.passwd) and creates the first user at the same time:

htpasswd -cm /home/subversion/.dav_svn.passwd michuk

Of course we can provide another password file location if we want. The following users should be created without the “-c” switch (which creates a new .passwd file):

htpasswd -m /home/subversion/.dav_svn.passwd claudio
htpasswd -m /home/subversion/.dav_svn.passwd didier

Now, when we have three example users, it is time to create a /etc/apache2/auth-files/public-svn-authzfile file, which holds the authorization information for each SVN user. Let`s consider a very simple example first:

# Groups configuration

[groups] 
owner = michuk 
faq-writers = michuk 
polishlinux-developers = michuk, claudio, didier

# Repositories configuration

# Main repository. Only owner (michuk) will be able to add \\
new repositories
[/] @owner = rw

# Repository`s FAQ - accessible only for users of \\
faq-writers group. No external access.
[faq:/] 
@faq-writers = rw

# polishlinux.org repository - may be modified by members \\
of polishlinux-developers group
# and all can browse it (option * = r)
[polishlinux.org:/] 
@polishlinux-developers = rw 
* = r

The access rights mentioned above are only a simple example of authorization privileges configuration. Every single user has to be added using htpasswd first in order to be able to use SVN repository (except for anonymous users allowed to browse our repository – if we decide to allow anonymous access). Note: there is a possibility to use system authentication (PAM) if we can’t live with two user directories (separate for system and for SVN). Please consult Subversion and Apache2 documentation pages for details of such configuration since we’re not going to cover it in this HOWTO.

System privileges

Finally, there is one more thing to know. In order to make the authentication work, we have to make sure that the owner of the directory containing our repositories is exactly the same user who owns the Apache2 process. In Debian it is www-data user by default. There might be a different user in different distributions (e.g. apache or apache2) so you need to check it with your distro’s manual. As the last part of our configuration we will then set up proper access rights for /home/subversion directory:

chown -R www-data:www-data /home/subversion/

If all went well, we should already be enjoying a fully configured, up and running instance of Subversion.

Restart Apache2

Please do not forget to restart Apache2 before you start reporting any errors in the article:

/etc/init.d/apache2 restart

Basic usage

Now, after getting through the pain of configuration, we can finally start using Subversion. First, we should try to add a few files to our newly created repository. To do that, we have to import the folder ~/faq to the remote repository, using a command like:

svn --username michuk import ~/faq \\
https://funky_seal/public/faq -m "First file import"

This command will import a whole content of ~/faq directory to our repository located on the SVN server, adding an appropriate comment (-m option). Comments are very useful, since they help us (in the future) find a correct file version, in which some particular changes have been made. Note that if you don’t specify the comment explicitly with the import command, you will be asked for it anyways by means of an additional confirmation screen.


 Subversion resolves conflicts in a smart way

Pic 2. Subversion resolves conflicts in a smart way

In order to check whether our files have been properly imported into our repository we have to browse to https://funky_seal/public/faq and log in. The contents of the repository will be always available through a web interface.

If we wish to download the repository content to a different machine (e.g. at work) we have to issue the checkout (in short: co) command:

svn co https://funky_seal/public/faq

Now, we can modify and commit changes to our repository in every place where the ‘faq’ repository has been downloaded (changes are being updated to our repository located in the main repository of our SVN server). In order to update all files from ‘faq’ repository in our working directory we have to issue the following command (while in faq folder):

svn update

When we make any changes to some file in the working directory, we can commit them to the SVN repository (that will succeed only if we have write privileges). The magic command is:

svn commit file

Note that you should always check whether there is a new version of a file before committing your changes. It may be that you forgot to update it before. Thus, always invoke svn update before committing anything, just in case. If there is a conflict, it will be merged anyway.

Another handy option in Subversion is diff which shows a the changes that have been made locally to a specific file since the last commit/update. To see the local changes we can use:

svn diff

When we share the same file with more than one person it is very easy to accidentally overwrite someone’s changes to the file. Luckily, owing to a smart way of merging and manual acceptance of atomic changes, lose of data is virtually nonexistent in Subversion (local changes are automatically merged with changes committed by other users after using svn update command). If there is still a need to prevent others from making any changes to a particular file, we can use a feature called lock:

svn lock file

By default, a lock is active until the next check-in (svn commit). However, if –no-unlock attribute has been used either during the file creation or with the last commit action, the only way to release the lock is to issue the command:

svn unlock file

More information about Subversion (like recovery of older revisions, checking file status, file and directories copying and moving within a repository or file and directory deletion process) can be found in Subversion FAQ , which is available on the Internet or using a local context help:

svn help

on a computer with an svn client installed. It’s really worth reading if you want to get the most of your version control system.


kdesvn - sample graphical user interface for Subversion

Pic 3. kdesvn – sample graphical user interface for Subversion

Subversion graphical interfaces

After a slightly time-consuming task of setting up a repository, it is really becoming very easy and straightforward to work with SVN in a console mode. In most cases the casual work with SVN is limited to downloading a new version of the repository (or some particular files) and committing your changes.

If you don’t like the command line interface or are overwhelmed by the multiple options of Subversion or just don’t like typing, don’t worry: you can install one of the GUI clients of Subversion. Here are some of the popular choices:

  • eSVN – graphical user interface for Subversion written in Qt
  • kdesvn – another graphical user interface for Subversion, designed for the K-Desktop environment (KDE)
  • WebSVN – web interface written in PHP and accessible from any web browser
  • Rapid SVN – very popular Subversion management tool, written using wxWidgets (works on GNU/Linux and MS Windows)
  • TortoiseSVN – a simple client for MS Windows only, which tightly integrates with the Windows shell – quite handy if you have to use the Redmond OS for some reason

As you see, you can use Subversion graphical clients on any operating system, including MS Windows (i.e. at work). GUI is quite handy when you need to get an older version of some file and need to compare multiple versions in order to find the right one. Most of the GUIs include a feature of file history, when you can compare any 2 versions of the selected file with just one mouse click. I personally recommend TortoiseSVN for Windows users and eSVN for desktop Linux fans. WebSVN can be a good option as well, if you prefer web interfaces (no need for installation on the client side).

Summary

A version control system can greatly improve your work performance, especially when working with a large documents repository. It can also prevent you from many tragedies connected with data loses. After you spend the time to create your home Subversion repository, it is just pure pleasure to use later on. I really encourage everyone to give Subversion a try – you probably won’t regret it (but sorry, no money back if you will though).

Resources

The following resources have been used while writing this article:

Updated on September 12nd, 2006: Subversion 1.4.0 is now released. Howtoforge published another great howto concerning Setting up Subversion and websvn on Debian (including websvn support).

Updated on October 12nd, 2006: There is a nice comparison of different version control systems for GNU/Linux on the IBM pages. Recemmended for the undecided.

Subscribe to RSS feed for this article! | Trackback URI

60 Comments

fold this thread Tom  Sunday, 3 September 2006 o godz. 12:06 am #  Add karma Subtract karma  +0

Subversion is great for managing code, but for personal documents bazaar (http://bazaar-vcs.org/) is muchmore appropriate in my opinion.

(Comments wont nest below this level)
 
fold this thread Subversion « PenguinRed  Sunday, 3 September 2006 o godz. 1:01 am #  Add karma Subtract karma  --1

[...] If you don’t like my tutorial, here is another. [...]

(Comments wont nest below this level)
 
fold this thread Subversion Notes « Dave’s Blogs  Sunday, 3 September 2006 o godz. 7:21 am #  Add karma Subtract karma  +0

[...] I just saw a configuration howto here. I do agree that you can use it to maintain ordinary files beyond source code. That reminded me that I also have some raw notes. Thanks to Satish for the configuration example. Here they are: [...]

(Comments wont nest below this level)
 
fold this thread ptman  Sunday, 3 September 2006 o godz. 9:39 am #  Add karma Subtract karma  +0

use a2enmod instead of linking the files by hand to /etc/apache2/mods-enabled/

(Comments wont nest below this level)
 
fold this thread mokshore » Blog Archive » links for 2006-09-04  Monday, 4 September 2006 o godz. 6:20 pm #  Add karma Subtract karma  +0

[...] polishlinux.org » Manage Your Documents with Subversion (tags: subversion) [...]

(Comments wont nest below this level)
 
fold this thread 本日書籤 « penk - Keep on rockin’ in the free world  Wednesday, 6 September 2006 o godz. 12:02 am #  Add karma Subtract karma  +0
(Comments wont nest below this level)
 
fold this thread zean.no-ip.info » Manage Your Documents with Subversion  Wednesday, 6 September 2006 o godz. 9:00 am #  Add karma Subtract karma  +0

[...] Version control systems are commonly used by programmers. They allow for easy team work and version management. However their benefits can easily be exploited by regular users as well. This article’s purpose is to help you take advantage of Subversion at home to improve control over your own set of documents.   [...]

(Comments wont nest below this level)
 
fold this thread hilton  Monday, 18 September 2006 o godz. 5:10 pm #  Add karma Subtract karma  +0

I use mediawiki to store my (app) docs. It is well suited if you dont need diffs ot the documents. It is insecure though as anyone can read the files if they know the path (bit diffcult if you have file browsing denied).

You can although setup ssl to only allow connections from know ssl client side certs but that is only one level of security and is pretty poor if you have multiple users.

(Comments wont nest below this level)
 
fold this thread Ben  Wednesday, 1 November 2006 o godz. 1:43 am #  Add karma Subtract karma  +0

This is an excellent article, especially for Linux users. If you’d like an illustrated approach to installing and configuring Subversion on Windows XP without Apache, you may also find my step-by-step instructions useful:

http://www.stanford.edu/~bsuter/subversion-setup-guide/

It includes additional information on how to make the default set-up more secure for remote access, how to change access permissions, and how to populate the repository with initial content.

(Comments wont nest below this level)
 
fold this thread huasen  Wednesday, 30 May 2007 o godz. 3:32 am #  Add karma Subtract karma  +0

How to set the locale of subversion to English?

(Comments wont nest below this level)
 
fold this thread michuk  Wednesday, 30 May 2007 o godz. 9:35 am #  Add karma Subtract karma  +0

How to set the locale of subversion to English?

What do you mean by “locale of subversion”? If you mean the client, then normally:
export LANG=en_GB && export LC_ALL=en_GB
and then execute Subversion commands as usually.

(Comments wont nest below this level)
 

[...] useful svn guide: http://polishlinux.org/apps/subversion-howto/ blog [...]

(Comments wont nest below this level)
 
fold this thread polishlinux.org » Gobby — network text editor  Sunday, 12 August 2007 o godz. 8:20 pm #  Add karma Subtract karma  +0

[...] sharing the source code through the Internet (or the Network in the office). There are some complex version control systems but they are suitable for large projects. What if you have a small project? Here comes is Gobby. [...]

(Comments wont nest below this level)
 
fold this thread Eric  Tuesday, 6 November 2007 o godz. 7:29 pm #  Add karma Subtract karma  +0

> you should always check whether there is a new version of a file before committing your changes

Pardon my ignorance, but isn’t the purpose of a version control system to do this kind of thing FOR YOU? I would hope that SVN would save you having to remember things and take extra steps, not the reverse.

Another hidden ‘gotchya’ is that apparently after the default of one month, SSL certificates expire, causing SVN to report an error message and failure upon commit. Wouldn’t it be nice to never have to worry / know about this kind of thing, and have your revision control system hide the details from you in a transparent way?

(Comments wont nest below this level)
 
fold this thread Version Control using Subversion (SVN) « odyssey through technology  Friday, 21 November 2008 o godz. 6:43 pm #  Add karma Subtract karma  +0

[...] Manage your documents with Subversion [...]

(Comments wont nest below this level)
 
fold this thread Subversion | gissinger.net  Monday, 13 April 2009 o godz. 5:09 pm #  Add karma Subtract karma  +0

[...] Vérifier l’activation des modules Apaches suivants (Sources Web). [...]

(Comments wont nest below this level)
 
fold this thread remke  Wednesday, 13 May 2009 o godz. 9:00 am #  Add karma Subtract karma  +0

Apache2-SSL-Certificate for Ubuntu Feisty..How to install this missing script to get the SSL certificates up

Published by admin at 9:03 am under SSL, Ubuntu

http://www.lingams.net/?p=30
Ubuntu Feisty has a bug where the command apache2-ssl-certificate is missing. This is a well documented bug. Here is the file you need to download to overcome this defect to create a self signed certificate. After you download, follow the notes below to copy the downloaded files to the location where they are supposed to be present.

1. Extract the package
2. put ssleay.cnf to /usr/share/apache2/
3. put apache2-ssl-certificate to /usr/sbin.
4. Create /etc/apache2/ssl directory.

Now apache2-ssl-certificate script should work. Please follow this link if you want to know how to use it.

Nice tutorial, thx …
http://www.linux-prof.nl

(Comments wont nest below this level)
 
fold this thread Subversion  Tuesday, 30 March 2010 o godz. 4:36 am #  Add karma Subtract karma  +0

[...] l’activation des modules Apaches suivants (Sources Web). ls /etc/apache2/mods-enabled/ dav.load dav_svn.conf [...]

(Comments wont nest below this level)
 
fold this thread Charles Troyan  Friday, 13 April 2012 o godz. 2:42 pm #  Add karma Subtract karma  +0

Reading this post reminds me of my brother! I will forward this write-up to him.

(Comments wont nest below this level)
 
fold this thread dududukkkkkkk  Thursday, 21 June 2012 o godz. 4:00 pm #  Add karma Subtract karma  +0

polishlinux.org » Manage Your Documents with Subversion I was suggested this web site by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my difficulty. You’re incredible! Thanks! your article about polishlinux.org » Manage Your Documents with SubversionBest Regards Agata

(Comments wont nest below this level)
 
fold this thread Appapycle  Tuesday, 16 October 2012 o godz. 12:27 pm #  Add karma Subtract karma  +0

OijyUQZS [url=http://canadagoosejacketsonsalecanada.info]canada goose montreal[/url]
hwoyKXMti http://airjordanfemmepascher.info
yrqdqvxrvn [url=http://canadagoosejacketsonsalecanada.info/#7386]canada goose kensington parka[/url]
CSYfNkkcu vljkcc [url=http://canadagoosejacketsonsalecanada.info]canada goose online[/url]
QthSKJLDmbi

(Comments wont nest below this level)
 
fold this thread http://www.squidoo.com/no-no-hair-removal-vs-silkn-sensepil  Sunday, 6 January 2013 o godz. 11:03 am #  Add karma Subtract karma  +0

Hi! Do you know if they make any plugins to assist with SEO?
I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good gains.
If you know of any please share. Appreciate it!

(Comments wont nest below this level)
 
fold this thread cheap nfl jerseys  Monday, 7 January 2013 o godz. 7:12 pm #  Add karma Subtract karma  +0

Howdy just wanted to give you a brief heads up and
let you know a few of the pictures aren’t loading properly. I’m not
sure why but I think its a linking issue. I’ve tried it in two different web browsers and both show the same results.

(Comments wont nest below this level)
 
fold this thread best online shopping websites  Tuesday, 15 January 2013 o godz. 8:25 pm #  Add karma Subtract karma  +0

Thank you with this essential content material, you might have only preserved me a Fantastic deal of time

(Comments wont nest below this level)
 
fold this thread Christian Louboutin Sale  Saturday, 2 March 2013 o godz. 6:31 pm #  Add karma Subtract karma  +0

Hey! I know this is kind of off topic but I
was wondering which blog platform are you using for this site?
I’m getting sick and tired of WordPress because I’ve
had issues with hackers and I’m looking at options for another platform. I would be fantastic if you could point me in the direction of a good platform.

(Comments wont nest below this level)
 
fold this thread voklimqb  Wednesday, 10 April 2013 o godz. 4:43 am #  Add karma Subtract karma  +0

twgu [url=http://www.osharebaggekiyasu.com/]chanel バッグ[/url][url=http://www.annkabagryuukou.com/]トリーバーチ[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ 財布[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ[/url][url=http://www.eregansubaggunosekai.com/]tory burch バッグ[/url] uzir
[url=http://www.osharebaggekiyasu.com/]chanel バッグ[/url][url=http://www.annkabagryuukou.com/]tory burch 財布[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ 財布[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ バッグ [/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ[/url] znby
[url=http://www.osharebaggekiyasu.com/]chanel 財布[/url][url=http://www.annkabagryuukou.com/]トリーバーチ 財布[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ 財布[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ[/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ バッグ [/url] uldc
[url=http://www.osharebaggekiyasu.com/]chanel 財布[/url][url=http://www.annkabagryuukou.com/]トリーバーチ 財布[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ 財布[/url][url=http://www.uresujibagmabushii.com/]tory burch バッグ[/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ[/url] qgwj
[url=http://www.osharebaggekiyasu.com/]chanel 財布[/url][url=http://www.annkabagryuukou.com/]トリーバーチ[/url][url=http://www.tokukakubagnesage.com/]tory burch 財布[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ バッグ [/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ[/url] ffay

bzyh
fnhx [url=http://www.osharebaggekiyasu.com/]シャネル 財布 格安[/url][url=http://www.annkabagryuukou.com/]tory burch 靴 新作[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ バッグ 2013[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ バッグ 店舗[/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ 財布 店舗[/url] hbfs
[url=http://www.osharebaggekiyasu.com/]シャネル 財布 2013[/url][url=http://www.annkabagryuukou.com/]トリーバーチ 2013[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ バッグ トート[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ バッグ 店舗[/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ 財布 2013[/url] vqsr
[url=http://www.osharebaggekiyasu.com/]シャネル 財布 格安[/url][url=http://www.annkabagryuukou.com/]トリーバーチ 2013[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ バッグ アウトレット[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ バッグ 店舗[/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ 財布 2013[/url] kynm
[url=http://www.osharebaggekiyasu.com/]シャネル 財布 格安[/url][url=http://www.annkabagryuukou.com/]tory burch 靴 新作[/url][url=http://www.tokukakubagnesage.com/]トリーバーチ バッグ トート[/url][url=http://www.uresujibagmabushii.com/]トリーバーチ バッグ 格安[/url][url=http://www.eregansubaggunosekai.com/]トリーバーチ 財布 店舗[/url] pxaf

tidg [url=http://www.osharebaggekiyasu.com/][/url][url=http://www.annkabagryuukou.com/][/url][url=http://www.tokukakubagnesage.com/][/url][url=http://www.uresujibagmabushii.com/][/url][url=http://www.eregansubaggunosekai.com/][/url]

(Comments wont nest below this level)
 
fold this thread vbxgzukg  Wednesday, 10 April 2013 o godz. 4:54 am #  Add karma Subtract karma  +0

wwtx [url=http://www.sutairissyubaggukawaii.com/]セリーヌ 財布[/url] [url=http://www.kakuyasubagteikakaku.com/]celine[/url] [url=http://www.celinechoubibagguuresuji.com/]celine バッグ[/url] [url=http://www.coachgekiyasubagdenndou.com/]コーチ 財布[/url] [url=http://www.celineannkabaggugekiyasu.com/]セリーヌ バッグ[/url] movw
[url=http://www.sutairissyubaggukawaii.com/]セリーヌ[/url] [url=http://www.kakuyasubagteikakaku.com/]celine[/url] [url=http://www.celinechoubibagguuresuji.com/]celine バッグ[/url] [url=http://www.coachgekiyasubagdenndou.com/]コーチ[/url] [url=http://www.celineannkabaggugekiyasu.com/]セリーヌ[/url] dzet
[url=http://www.sutairissyubaggukawaii.com/]セリーヌ[/url] [url=http://www.kakuyasubagteikakaku.com/]celine 財布[/url] [url=http://www.celinechoubibagguuresuji.com/]celine 財布[/url] [url=http://www.coachgekiyasubagdenndou.com/]コーチ[/url] [url=http://www.celineannkabaggugekiyasu.com/]セリーヌ[/url] srmu
[url=http://www.sutairissyubaggukawaii.com/]セリーヌ[/url] [url=http://www.kakuyasubagteikakaku.com/]celine バッグ[/url] [url=http://www.celinechoubibagguuresuji.com/]celine[/url] [url=http://www.coachgekiyasubagdenndou.com/]コーチ[/url] [url=http://www.celineannkabaggugekiyasu.com/]セリーヌ[/url] hgkw
[url=http://www.sutairissyubaggukawaii.com/]セリーヌ バッグ[/url] [url=http://www.kakuyasubagteikakaku.com/]celine 財布[/url] [url=http://www.celinechoubibagguuresuji.com/]celine[/url] [url=http://www.coachgekiyasubagdenndou.com/]coach 財布[/url] [url=http://www.celineannkabaggugekiyasu.com/]セリーヌ 財布[/url] kqtp

equp
ryng [url=http://www.sutairissyubaggukawaii.com/]セリーヌ アウトレット[/url] [url=http://www.kakuyasubagteikakaku.com/]セリーヌ バッグ 格安[/url] [url=http://www.celinechoubibagguuresuji.com/]セリーヌ 財布 2013[/url] [url=http://www.coachgekiyasubagdenndou.com/]coach アウトレット 2013[/url] [url=http://www.celineannkabaggugekiyasu.com/]celine 格安[/url] gimq
[url=http://www.sutairissyubaggukawaii.com/]セリーヌ 2013[/url] [url=http://www.kakuyasubagteikakaku.com/]セリーヌ バッグ 店舗[/url] [url=http://www.celinechoubibagguuresuji.com/]セリーヌ バッグ 新作[/url] [url=http://www.coachgekiyasubagdenndou.com/]coach 2013[/url] [url=http://www.celineannkabaggugekiyasu.com/]celine 格安[/url] bmwm
[url=http://www.sutairissyubaggukawaii.com/]celine 新作[/url] [url=http://www.kakuyasubagteikakaku.com/]セリーヌ バッグ 店舗[/url] [url=http://www.celinechoubibagguuresuji.com/]セリーヌ バッグ 通販[/url] [url=http://www.coachgekiyasubagdenndou.com/]coach アウトレット[/url] [url=http://www.celineannkabaggugekiyasu.com/]celine 通販[/url] yhwc
[url=http://www.sutairissyubaggukawaii.com/]セリーヌ バッグ 2013[/url] [url=http://www.kakuyasubagteikakaku.com/]セリーヌ バッグ 店舗[/url] [url=http://www.celinechoubibagguuresuji.com/]セリーヌ バッグ 通販[/url] [url=http://www.coachgekiyasubagdenndou.com/]coach 2013[/url] [url=http://www.celineannkabaggugekiyasu.com/]celine 通販[/url] mrol

eysi [url=http://www.sutairissyubaggukawaii.com/][/url] [url=http://www.kakuyasubagteikakaku.com/][/url] [url=http://www.celinechoubibagguuresuji.com/][/url] [url=http://www.coachgekiyasubagdenndou.com/][/url] [url=http://www.celineannkabaggugekiyasu.com/][/url]

(Comments wont nest below this level)
 
fold this thread aahjpffm  Wednesday, 10 April 2013 o godz. 4:55 am #  Add karma Subtract karma  +0

zkvs [url=http://www.mcmchiipubagkireii.com/]mcm[/url] [url=http://www.mcmosharebagguseru.com/]mcm バッグ[/url] [url=http://www.kakuyasubagnosekai.com/]mcm バッグ[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm[/url] [url=http://www.annkabagkurashikku.com/]mcm[/url] nkjb
[url=http://www.mcmchiipubagkireii.com/]mcm 店舗[/url] [url=http://www.mcmosharebagguseru.com/]mcm バッグ[/url] [url=http://www.kakuyasubagnosekai.com/]mcm リュック[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm リュック[/url] [url=http://www.annkabagkurashikku.com/]mcm 店舗[/url] odwn
[url=http://www.mcmchiipubagkireii.com/]mcm 店舗[/url] [url=http://www.mcmosharebagguseru.com/]mcm バッグ[/url] [url=http://www.kakuyasubagnosekai.com/]mcm バッグ[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm リュック[/url] [url=http://www.annkabagkurashikku.com/]mcm 財布[/url] xpad
[url=http://www.mcmchiipubagkireii.com/]mcm 店舗[/url] [url=http://www.mcmosharebagguseru.com/]mcm[/url] [url=http://www.kakuyasubagnosekai.com/]mcm リュック[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm バッグ[/url] [url=http://www.annkabagkurashikku.com/]mcm 店舗[/url] fvbk
[url=http://www.mcmchiipubagkireii.com/]mcm[/url] [url=http://www.mcmosharebagguseru.com/]mcm[/url] [url=http://www.kakuyasubagnosekai.com/]mcm バッグ[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm[/url] [url=http://www.annkabagkurashikku.com/]mcm 財布[/url] zjzi

ftuj
mjrz [url=http://www.mcmchiipubagkireii.com/]mcm 店舗 新作[/url] [url=http://www.mcmosharebagguseru.com/]mcm 2013[/url] [url=http://www.kakuyasubagnosekai.com/]mcm リュック 2013[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm リュック 新作[/url] [url=http://www.annkabagkurashikku.com/]mcm 店舗 2013[/url] pptj
[url=http://www.mcmchiipubagkireii.com/]mcm 店舗 格安[/url] [url=http://www.mcmosharebagguseru.com/]mcm バッグ アウトレット[/url] [url=http://www.kakuyasubagnosekai.com/]mcm バッグ 新作[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm リュック 通販[/url] [url=http://www.annkabagkurashikku.com/]mcm 店舗 2013[/url] xngi
[url=http://www.mcmchiipubagkireii.com/]mcm 店舗 格安[/url] [url=http://www.mcmosharebagguseru.com/]mcm バッグ 2013[/url] [url=http://www.kakuyasubagnosekai.com/]mcm バッグ 新作[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm リュック 新作[/url] [url=http://www.annkabagkurashikku.com/]mcm 店舗 アウトレット[/url] uclk
[url=http://www.mcmchiipubagkireii.com/]mcm 店舗 新作[/url] [url=http://www.mcmosharebagguseru.com/]mcm アウトレット[/url] [url=http://www.kakuyasubagnosekai.com/]mcm リュック 2013[/url] [url=http://www.mcmchoubibagguyasui.com/]mcm リュック 通販[/url] [url=http://www.annkabagkurashikku.com/]mcm 店舗 2013[/url] ykpg

jdvi [url=http://www.mcmchiipubagkireii.com/][/url] [url=http://www.mcmosharebagguseru.com/][/url] [url=http://www.kakuyasubagnosekai.com/][/url] [url=http://www.mcmchoubibagguyasui.com/][/url] [url=http://www.annkabagkurashikku.com/][/url]

(Comments wont nest below this level)
 
fold this thread 財布 ヴィトン  Tuesday, 23 April 2013 o godz. 6:27 am #  Add karma Subtract karma  +0

The weight associated with the cell would vary issues on the nature of the
strategy one has. Well, he does, and some marvelous
ones at the fact. In the event you a woman, how you can gown is a tiny little extra complicated.
That this button-work and similar ‘hardware’ bits to bag are
developed from brass. http://annie.puidebois.free.fr/html/userinfo.
php?uid=2823

(Comments wont nest below this level)
 
fold this thread プラダアウトレット  Saturday, 11 May 2013 o godz. 1:02 am #  Add karma Subtract karma  +0

Excellent beat ! I wish to apprentice even as you
amend your site, how can i subscribe for a blog
website? The account aided me a applicable deal.
I had been a little bit acquainted of this your broadcast provided bright clear idea

(Comments wont nest below this level)
 
fold this thread http://helpers.cs2d.com.br/portal/userinfo.php?uid=9279  Thursday, 23 May 2013 o godz. 9:05 pm #  Add karma Subtract karma  +0

Hello, Neat post. There’s a problem with your site in web explorer, may check this? IE nonetheless is the market chief and a good part of people will leave out your magnificent writing because of this problem.

(Comments wont nest below this level)
 
fold this thread Oakley Plaintiff  Friday, 24 May 2013 o godz. 12:38 pm #  Add karma Subtract karma  +0

First of all I would like to say wonderful blog!
I had a quick question that I’d like to ask if you don’t mind.

I was curious to know how you center yourself and clear your head prior to
writing. I have had difficulty clearing my thoughts
in getting my thoughts out there. I do take pleasure in writing
but it just seems like the first 10 to 15 minutes are lost just trying to figure out
how to begin. Any ideas or tips? Appreciate it!

(Comments wont nest below this level)
 
fold this thread replica watches  Thursday, 13 June 2013 o godz. 12:32 pm #  Add karma Subtract karma  +0

Hi, its nice piece of writing on the topic of media print, we all be aware of media is a enormous source of information.

(Comments wont nest below this level)
 
fold this thread miumiu 財布  Saturday, 20 July 2013 o godz. 12:38 pm #  Add karma Subtract karma  +0

Heya i am for the first time here. I found this
board and I find It truly useful & it helped me out a lot.

I hope to give something back and help others like
you aided me.

(Comments wont nest below this level)
 
fold this thread ディーゼル 財布  Sunday, 4 August 2013 o godz. 8:28 am #  Add karma Subtract karma  +0

Post writing is also a fun, if you know after that you can write or else it is difficult
to write.

(Comments wont nest below this level)
 
fold this thread ポリス サングラス  Wednesday, 7 August 2013 o godz. 3:12 am #  Add karma Subtract karma  +0

Hello, Neat post. There’s an issue along with your site in internet explorer, may test this? IE still is the market chief and a big element of other people will omit your great writing because of this problem.

(Comments wont nest below this level)
 

[...] Basic How-To [...]

(Comments wont nest below this level)
 
fold this thread www.izaberumaranjapanvip.com  Saturday, 7 September 2013 o godz. 12:22 pm #  Add karma Subtract karma  +0

決定 人の 既に を計画している 彼 の休暇 来年 すぐ。 オレンジとなる が、 最もエキサイティングな
の色 春。可能性があります も 明らかに も
は が。 顧客の多く 可能性があります
誠実な研究 、 利点 見つけることができる とすることができます
様々 な 自分の考え どのように 素晴らしい彼ら 見て に関して
には 異なる靴。

(Comments wont nest below this level)
 
fold this thread Helicopter Auckland  Tuesday, 22 October 2013 o godz. 8:03 pm #  Add karma Subtract karma  +0

We stumbled over here coming from a different web page and
thought I should check things out. I like what I see so now i am following you.

Look forward to exploring your web page for a second time.

(Comments wont nest below this level)
 
fold this thread 専門店 検査合格  Friday, 1 November 2013 o godz. 7:31 pm #  Add karma Subtract karma  +0

I am curious to find out what blog system you have
been utilizing? I’m having some minor security issues with my
latest blog and I would like to find something more risk-free.
Do you have any suggestions?

(Comments wont nest below this level)
 
fold this thread Kompaktlemez  Monday, 5 May 2014 o godz. 11:04 am #  Add karma Subtract karma  +0

Wow, fantasstic blog layout! How long have you been blogging for?

you make blogging look easy. The overall look of your web site
is fantastic, as well as the content!

(Comments wont nest below this level)
 
fold this thread Gatwick heathrow airport terminal  Wednesday, 7 May 2014 o godz. 10:17 pm #  Add karma Subtract karma  +0

If you wish for to increase your know-how simply keep visiting this
web page and be updated with the most up-to-date news update posted here.

(Comments wont nest below this level)
 
fold this thread cialis generique pas cher  Friday, 16 May 2014 o godz. 9:16 am #  Add karma Subtract karma  +0

You stretch a “hose” to the recharging socket built in the
EV. You may also want a digital display that tracks heart rate, distance traveled and calories burn. This will provide various sites
that offer online jobs for such skills.

(Comments wont nest below this level)
 
fold this thread french-hacks.blogspot.fr  Friday, 23 May 2014 o godz. 11:08 am #  Add karma Subtract karma  +0

Within the light of this totally free exchange should be examined.
Dog fighting in Battlefield 1943 is an elaborate experience that takes
some getting used to. Deciding to charge for key components
of the Playstation Network that had previously been available
for free would lead to a massive backlash
from both the media and loyal Sony consumers. Just sign up for the service,
download the VPN, connect to it, and like magic you can get Netflix.
I hope this facilitates but hey, I probably wont notice
from you guys; youll most likely have bliss with these excellent services.
top : window; size_viewport = h : w. unshift(‘h1′);
else CHITIKA.

(Comments wont nest below this level)
 
fold this thread www.essexcaraudioandalarms.co.uk  Thursday, 19 June 2014 o godz. 9:41 am #  Add karma Subtract karma  +0

Quality articles or reviews is the crucial to attract
the people to go to see the web page, that’s what this web site is providing.

(Comments wont nest below this level)
 
fold this thread dating for men  Wednesday, 25 June 2014 o godz. 2:52 pm #  Add karma Subtract karma  +0

What’s up, I want to subscribe for this weblog to obtain most up-to-date updates,
so where can i do itt please help out.

(Comments wont nest below this level)
 
fold this thread joint pains  Monday, 28 July 2014 o godz. 4:36 am #  Add karma Subtract karma  +0

Nice post. I was checking continuously this blog and I’m
impressed! Veryy helpful info specifically the last part
:) I care for such info much. I was looking for
this certain info for a long time. Thank you and good luck.

(Comments wont nest below this level)
 
fold this thread Free Online Tarot  Thursday, 31 July 2014 o godz. 9:40 am #  Add karma Subtract karma  +0

This post provides clear idea in upport of the new visitors of blogging, that genjuinely how to do blogging.

(Comments wont nest below this level)
 
fold this thread resilient Flooring  Friday, 8 August 2014 o godz. 2:55 am #  Add karma Subtract karma  +0

Thank you a loot forr sharing this with all people you really realize what you’re speaking approximately!
Bookmarked. Kindly additionally discuss with my site =).
We will have a hyperlink exhange contract bettween us

(Comments wont nest below this level)
 
fold this thread game of thrones t-shirt  Friday, 8 August 2014 o godz. 5:07 pm #  Add karma Subtract karma  +0

What’s Going down i am new to this, I stumbled upon this
I have found It absolutely helpful and it has helped me out loads.
I’m hoping to give a contribution & help different customers like its helped me.
Good job.

(Comments wont nest below this level)
 
fold this thread Carpets and rugs Fitting up Fullerton California  Friday, 8 August 2014 o godz. 9:37 pm #  Add karma Subtract karma  +0

Hey I know this iis off topic but I wass wondering if
you knew oof any widgets I could add to my blog that automatically tweet my neest twitter
updates. I’ve been looking for a plug-in ike this for quite some time
and was hopping maybe you would have some expeeience with something like this.
Please let me know if yyou ruun into anything.
I truly enjoy reading your blog and I look forward
to your new updates.

(Comments wont nest below this level)
 
fold this thread Nestor  Saturday, 9 August 2014 o godz. 4:59 am #  Add karma Subtract karma  +0

Hello! I understand this is somewhat off-topic however I had
to ask. Does managing a well-established blog like yours require
a large amount of work? I’m brand new to operating a
blog however I do write in my journal every day. I’d like to start a blog so I will be able to share my
personal experience and views online. Please let me know if you have any recommendations or tips for brand
new aspiring blog owners. Appreciate it!

(Comments wont nest below this level)
 
fold this thread snow blower  Saturday, 9 August 2014 o godz. 6:58 am #  Add karma Subtract karma  +0

Excellent blog here! Also your site loads up
fast! What web host are you using? Can I get your affiliate
link to your host? I wish my website loaded up as quickly as
yours lol

(Comments wont nest below this level)
 
fold this thread Celine trapeze handbags  Saturday, 9 August 2014 o godz. 6:18 pm #  Add karma Subtract karma  +0

Celine trapeze handbags
I enjoy what you guys are usually up too. This
type of clever work and exposure! Keep up the awesome works guys I’ve you guys to
our blogroll.

(Comments wont nest below this level)
 
fold this thread south park the stick of truth crack  Wednesday, 20 August 2014 o godz. 7:51 am #  Add karma Subtract karma  +0

I enjoy reading through an article that can make people think.
Also, many thanks for permitting me to comment!

(Comments wont nest below this level)
 
fold this thread sexygirlsselfshot.com  Saturday, 23 August 2014 o godz. 12:48 pm #  Add karma Subtract karma  +0

hi!,I like your writing so so much! share we keep up a correspondence more about your article on AOL?
I need an expert on this space to resolve my problem.
Maybe that’s you! Looking ahead to peer you.

(Comments wont nest below this level)
 
fold this thread rubber floor tiles  Monday, 25 August 2014 o godz. 6:02 pm #  Add karma Subtract karma  +0

It’s amazing to visit this web site and reading the views oof all mates concerning thiks article, while I aam also zealous oof
getting knowledge.

(Comments wont nest below this level)
 
fold this thread trouver un mot de passe facebook  Saturday, 30 August 2014 o godz. 3:59 am #  Add karma Subtract karma  +0

hacker mot de passe facebook,http://fbpirater.net/,hacker un compte
facebook,hacker compte facebook,piratage compte facebook,pirater compte facebook,trouver un mot de passe facebook,pirater mot de passe facebook,comment pirater facebook,Pirater un compte Facebook – Apprendre
comment pirater un compte Facebook.

(Comments wont nest below this level)
 
fold this thread Linnea  Saturday, 30 August 2014 o godz. 9:02 pm #  Add karma Subtract karma  +0

Hello friends, how is everything, and what you
want to say about this post, in my view its really amazng in support of
me.

(Comments wont nest below this level)
 
fold this thread Marlene  Monday, 1 September 2014 o godz. 6:15 am #  Add karma Subtract karma  +0

I read a lot of interesting articles here. Probably you spend a lot of time writing,
i know how to save you a lot of work, there is an online tool that creates unique,
google friendly posts in minutes, just search in google – laranitas free content source

(Comments wont nest below this level)
 
Name (required)
E-mail (required - never shown publicly)
URI

Adjust field size: shrink | enlarge)


You can use simple HTML in your comments. Some examples are as follows:
  • A hyperlink: <a href="polishlinux.org">GNU/Linux for everyone!</a>,
  • Strong text: <strong>Strong text</strong>,
  • Italic text: <em>italic text</em>,
  • Strike: <strike>strike</strike>,
  • Code: <code>printf("hello world");</code>,
  • Block quote: <blockquote>Block quote</blockquote>

About the Author

Borys Musielak

PolishLinux.org creator and editor in chief. Professionally -- J2EE consultant in London City. Personally -- free software enthusiast and lobbyist.

New AdTaily ads!

Are you a film buff?

film buffs community, movie recommendations and reviews

RSS: Comments

You can follow the comments to this article through a special channel RSS 2.0 .

Related articles: Apps

 more »

Related articles: HOWTOs

 more »

PolishLinux Top Content


Become our fan on Facebook!

PolishLinux.org on Facebook

Follow PolishLinux on Twitter!

Follow polishlinux on Twitter

Google Ads