Skip to main content Help Control Panel

Cybermedium

webdevelopper
webdesigner
webmaster

Utilisez GIT pour maintenir vos scripts YACS

Home Téléchargez

Ce tutoriel a pour vocation de montrer les premières bases de GIT - sans cependant refaire la même chose que les tutoriels existants sur le web - et susciter l'intérêt de son usage pour YACS.
Le premier intérêt de GIT, c'est d'abord un moyen de maîtriser le versioning chez soi. Pour les intégrateurs yacsiens, GIT permet ainsi de maintenir facilement des "forks" de Yacs, en production chez vos clients.
En effet un upgrade de Yacs écrase les modifications sur les sources. Nous verrons comment avec GIT reporter automatiquement nos modifications dans une nouvelle version des scripts de Yacs.

 GIT se prononce "guitte".
Wikipédia :
" Le magazine PC World nous apprend que « quand on lui a demandé pourquoi il avait appelé son logiciel "git", qui est à peu près l'équivalent de « connard » en argot anglais, Linus Torvalds a répondu « Je ne suis qu'un égocentrique, donc j'appelle tous mes projets d'après ma propre personne. D'abord Linux, puis Git. » " "


Pré-requis



Il faut bien sûr avoir GIT installé sur votre machine. J'ai réalisé ce tutoriel sous Linux Mint ; GIT fait partie des dépôts classiques. Sous Linux, GIT se pilote principalement en ligne de commande.

Il faut configurer quelques options générales pour GIT, en commençant par english flag vous identifier. Ceci ajoutera votre nom à chaque commit, et sera bien utile dans le cas de développement à plusieurs.

Il existe bien english flag d'autres configurations, je conseille la coloration (en ajoutant --global pour ne pas le refaire dans chaque répertoire de travail).

GIT bases

Initializing working directory

GIT se déclenche au niveau d'un répertoire, pour tous les sous répertoires et fichiers contenus. C'est archi-simple : créer ou aller dans un répertoire de travail, ouvrir un terminal dedans et faire : [style=terminal]$ git init[/style] Réponse : [style=terminal] Initialized empty Git repository in /home/.../yourfolder/.git/[/style] GIT a créé un répertoire caché [i].git[/i] à la racine du répertoire de travail, et stockera ses données dedans. Aucun autre fichier n'est placé ailleurs.

Adding Files

Si votre répertoire est vide, il faut créer ou copier des fichiers dedans. Faites cela avec votre moyen préféré. Pour l'exemple, j'ajoute ici un fichier testgit.html :
testgit.html
<html>
<
head>
    <
title>Test pour GIT</title>
</
head>
<
body>
    <
h1>/(bb|[^b]{2})/</h1>        <div>
        <
span>.-"""-.</span><span>/ _  _ \</span>
        <span>??  ](_' `_)[  ??</span><span>`-. N ,-'</span>
        <span>|===|</span><span>`---'</span>
    </div>
</body>
</html><
page de test html testgit.html
Maintenant, toujours dans notre terminal, faisons juste pour voir : [style=terminal]$ git status[/style] Réponse : [style=terminal]# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add filename..." to include in what will be committed)
#
# testgit.html
nothing added to commit but untracked files present (use "git add" to track)[/style]

Git nous dit qu'un fichier est présent mais non indexé. [style=terminal]$ git add testgit.html
$ git status[/style] le nouveau fichier est maintenant suivi. il ne reste qu'a commiter. On peut ajouter tous les fichiers du répertoire avec "git add *"

Commit Changes

[style=terminal]$ git commit -m "ajout fichier testgit.html"[/style] tout commit doit être accompagné d'un message. l'option -m permet de fournir le message en ligne de commande. Sinon GIT ouvre un éditeur pour faire cette saisie (vim). Vous trouverez un english flag tuturiel vidéo plus détaillé pour cette partie.

Branching

Maintenant nous allons faire de nouvelles modifications, mais dans une branche. Il est extrêmement facile avec GIT de créer une branche, puis de fusionner ses développements plus tard avec une autre branche. Aussi il ne faut pas hésiter à créer de multiples branches pour vos développements. On crée une branche ainsi : [style=terminal]$ git branch experience[/style] avec ici "experience", le nom de la branche. Vous pouvez visualiser les branches existantes ainsi : [style=terminal]$ git branch[/style] La branche avec une étoile est la branche active. La branche créée par défaut s'appelle master. On change de branche active ainsi : [style=terminal]$ git checkout experience[/style] Refaire [i]git branch[/i] pour voir. Au niveau des fichiers, rien ne s'est encore passé.

Maintenant, faisons de nouvelles modifications, et même, ajoutons un fichier.
modifs sur testgit.html et ajout style.css
<html>
<
head>
    <
title>Test pour GIT</title>
    <
link rel="stylesheet" type="text/css" href="style.css" media="all" />
</
head>
<
body>
    <
h1>/(bb|[^b]{2})/</h1>    <div>
        <
span>.-"""-.</span><span>/ _  _ \</span>
        <span>??  ](_' `_)[  ??</span><span>`-. N ,-'</span>
        <span>|===|</span><span>`---'</span>
    </div>
</body>
</html>


h1 {
    
text-align center;
    
color firebrick;
}

div {
    
margin 40px
}

div span {
    
display block;
    
text-align center;
    
font-family monospace;
}
feuille de style style.css
Un petit commit : [style=terminal]$ git add style.css
$ git commit -a -m "adding a style sheet"[/style] Un [i]git status[/i] doit donner "working directory clean". [*] Visualiser votre page dans un navigateur et retournons sur la branche master : [style=terminal]$ git checkout master[/style] [*] Recharger la page dans votre navigateur... Surprise ?

[*] Regardez vos fichiers : le nouveau fichier a disparu, et le contenu de l'autre est revenu à l'état initial. [*] Retournez sur la branche experience (git branch experience) : les modifications réapparaissent.

 En fonction de la branche active, GIT change dynamiquement le contenu de votre répertoire de travail.
 

Merging

Faisons d'abord des nouvelles modifications sur la branche master [style=terminal]$ git checkout master[/style]
modifs sur test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<
head>
    <
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
    <
title>Test pour GIT</title>
</
head>
<
body>
    <
h1>/(bb|[^b]{2})/</h1>    <div>
        <
span>.-"""-.</span><span>/ _  _ \</span>
        <span>??  ](_' `_)[  ??</span><span>`-. N ,-'</span>
        <span>|===|</span><span>`---'</span>
    </div>
</body>
</html>
et commitez-les : [style=terminal]git commit -a -m "doctype declarations")[/style]

Chaque branche contient maintenant des modifications uniques.

[*] Fusionnons experience dans master : [style=terminal]$ git merge experience[/style] [*]Contrôlez le résultat en rechargeant la page. [*]Dans le terminal, tapez "gitk" pour avoir un aperçu graphique de vos opérations.

Merging conflict

Bien sûr parfois GIT ne peut se dépatouiller tout seul avec des modifications contradictoires. Dans ce cas il signale un conflit et place un marquage spécial à l'intérieur du fichier. A vous de résoudre le conflit en éditant le fichier. Plusieurs commandes peuvent vous aider à visualiser les différences entre les versions. Voici un tutoriel english flag branching & merging pour plus de détails (vidéo en fin de page)

Voir aussi plus bas pour la résolution d'un conflit.

Upgrading a fork

Dans le cadre de cet exemple, supposons un projet démarré en Yacs, sur lequels vous avez dû effectuer quelques modifications dans les sources pour répondre à votre client. Une nouvelle version de yacs est sortie et vous souhaitez migrer. La mise à jour du serveur entraîne l'écrasement des fichiers et donc la perte de vos modifications. Il faut donc avoir consciencieusement noté chaque modification, et les reporter à la main dans les nouvelles versions des scripts, puis les uploader sur votre serveur après sa mise à jour. Cela peut être fastidieux...

La méthode ci-dessous permet d'automatiser l'intégration de vos modifications dans les nouveaux scripts de Yacs.

Indexing a Yacs serveur

Dans un répertoire, placer les scripts d'un serveur Yacs. Pour cet exemple je me limite à quelques fichiers. C'est du vécu : ajouter aux catégories l'option de listage des utilisateurs par ordre alphabétique. Je pars d'une 9.11. On va migrer ensuite vers 10.5. Je donne les fichiers de chaque version en zip ici pour refaire les tests chez vous. [*]categories/view.php [*]shared/members.php
Fichiers provennant de yacs9.11
indexez les fichiers [style=terminal]$ git add *[/style] puis commitez [style=terminal]$ git commit[/style] Vous pouvez étiqueter cet état de la branche avec le numéro de version [style=terminal]$ git tag v9.11[/style]

Branching to customize

[*]Créer une nouvelle branche pour votre projet spécifique [style=terminal]$ git branch MyClient
$ git checkout MyClient[/style] [*]Modifiez les fichiers pour appliquer vos modifications (en un ou plusieurs commits) en l'occurence : dans shared/members.php, insertion d'une nouvelle fonction après la fonction list_users_by_post_for_anchor (L994)
listage des utilisateurs par nom
/**
     * list alphabetically users assigned to an anchor
     *
     * Only users matching following criteria are returned:
     * - user is visible (active='Y')
     * - user is restricted (active='R'), but surfer is a logged user
     * - user is restricted (active='N'), but surfer is an associate
     *
     * @param the target anchor
     * @param int the offset from the start of the list; usually, 0 or 1
     * @param int the number of items to display
     * @param string the list variant, if any
     * @param string an id to avoid, if any
     * @return NULL on error, else an ordered array with $url => ($prefix, $label, $suffix, $icon)
     *
     * @see categories/view.php
     */
    
function &list_users_by_names_for_anchor($anchor$offset=0$count=10$variant=NULL$to_avoid=NULL) {
        global 
$context;

        
// locate where we are
        
if(!$variant)
            
$variant $anchor;

        
// limit the scope of the request
        
$where "users.active='Y'";
        if(
Surfer::is_logged())
            
$where .= " OR users.active='R'";
        if(
Surfer::is_associate())
            
$where .= " OR users.active='N'";
        
$where '('.$where.')';

        
// avoid this one
        
if($to_avoid)
            
$where .= " AND (users.id != '".SQL::escape($to_avoid)."')";

        
// the list of users
        
$query "SELECT users.*    FROM ".SQL::table_name('members')." AS members"
            
.", ".SQL::table_name('users')." AS users"
            
." WHERE (members.anchor LIKE '".SQL::escape($anchor)."')"
            
."    AND (members.member_type LIKE 'user')"
            
."    AND (users.id = members.member_id)"
            
."    AND ".$where
            
." ORDER BY users.full_name, users.nick_name LIMIT ".$offset.','.$count;

        
// use existing listing facility
        
$output =& Users::list_selected(SQL::query($query), $variant);
        return 
$output;
    }
[*]Dans categorie/view.php, à la L789, changer :
implémentation option users_by_name
// list items by date (default) or by title (option 'users_by_title')
        
$offset = ($zoom_index 1) * USERS_LIST_SIZE;
        
$items =& Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offsetUSERS_LIST_SIZE'watch');
par :
// list items by date (default) or by name (option 'users_by_name')
        
$offset = ($zoom_index 1) * USERS_LIST_SIZE;
        if(
preg_match('/\busers_by_name\b/i'$item['options']))
            
$items =& Members::list_users_by_names_for_anchor('category:'.$item['id'], $offsetUSERS_LIST_SIZE'watch');
        else
            
$items =& Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offsetUSERS_LIST_SIZE'watch');
[*]Commitez : [style=terminal]git commit -a -m "added alpha order option for listing users on catergories"[/style]

Vous avez donc : [*]une branche master, qui contient les scripts originaux de yacs. [*]une branche MyClient, avec vos modifications spécifiques.

Vous pouvez créer autant de branches "client" à partir de master, et les compléter à mesure des évolutions de chaque projet, en activant la branche appropriée. Un seul répertoire contient tous vos serveurs !
 Vous pouvez copier votre répertoire de travail, toutes les informations de GIT seront également dupliquées puisqu'elles sont dans le répertoire .git, et pourront êtres manipulées de manière distincte de l'original.
 Un intérêt est de placer votre répertoire de travail pour le faire également tourner sous XAMPP par exemple. Dans ce cas vous pouvez avoir besoin d'éliminer certains fichiers de l'indexation GIT, moyennant la déclaration d'un fichier [i].gitignore[/i].
 

Rebasing to upgrade

Une nouvelle version de Yacs est dispo ! [*]Commençons par mettre à jour la branche master : fichiers de 10.5 fichiers provenant de yacs 10.5 [style=terminal]$ git checkout master[/style] supprimez tout le contenu, puis copiez dedans l'intégralité de la nouvelle archive. Commitez... votre branche master est à jour ; une mise à jour par écrasement ne permet pas de supprimer les fichiers obsolètes - pas dans cet exemple bien sûr.

[*] Maintenant il faut upgrader la branche MyClient. Nous voulons en fait reporter les modifications spécifiques sur les nouveaux scripts. C'est exactement ce que fait la commande "rebase" : elle initialise la branche selon la branche modèle, et applique les modifications dessus comme si c'était des patchs. C'est différent du merge, pas du point de vue du résultat produit sur le code, mais plutôt dans l'ordre dans lesquels les commits sont archivés.

[style=terminal]$ git checkout MyClient
$ git rebase master[/style]

Tout se passe bien pour shared/members.php, mais nous avons un conflit sur categories/view.php.

[style=terminal]First, rewinding head to replay your work on top of it...
Applying: added alpha order option for listing users on catergories
error: patch failed: categories/view.php:786
error: categories/view.php: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging categories/view.php
CONFLICT (content): Merge conflict in categories/view.php
Auto-merging shared/members.php
Failed to merge in the changes.
Patch failed at 0001 added alpha order option for listing users on categories

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
[/style]

[*]Éditez le fichier en conflit. Rechercher "=====" pour tomber sur les marqueurs spéciaux de ligne en conflit. Nous voyons ceci :
conflict in view.php
<<<<<<< HEAD:categories/view.php
        $items 
=& Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offsetUSERS_LIST_SIZE$layout);

===

        if(
preg_match('/\busers_by_name\b/i'$item['options']))
            
$items =& Members::list_users_by_names_for_anchor('category:'.$item['id'], $offsetUSERS_LIST_SIZE'watch');
        else
            
$items =& Members::list_users_by_posts_for_anchor('category:'.$item['id'], $offsetUSERS_LIST_SIZE'watch');
>>>>>>> 
added alpha order option for listing users on catergories:categories/view.php
d'abord GIT affiche la version d'origine, ici celle de la branche master, et sous les ==== le patch qu'il tentait d'appliquer (avec à la fin l'intitulé du message qui accompagnait le commit en question. Cela n'a pas marché car entre 9.11 et 10.5, les catégories ont gagné la capacité d'offrir le choix du layout utilisateur : au lieu d'imposer un layout en dur (watch), cela passe par une variable $layout. Il faut donc remplacer nos 'watch' par $layout. On efface ensuite ce qui est inutile (l'ancienne version, et les marqueurs)

[*]Maintenant pousuivons : [style=terminal]$ git add categories/view.php
$ git rebase --continue[/style]

Une fois cette opération terminée, la branche MyClient contient vos modifications appliquées sur la nouvelle version de Yacs. Vous pouvez mettre à jour votre serveur distant avec l'archive standard puis uploader les fichiers modifiés depuis votre répertoire de travail.

une solution encore plus propre serait de construire une archive de mise à jour spécifique à partir du script build.php de Yacs, mais cela c'est un autre tutoriel !

Conclusion



GIT rend déjà beaucoup de services "à la maison" avec un système de versioning très puissant et pourtant simple d'apparence. Ce tutoriel en donne un aperçu. Bien sûr il y aurait des cas particuliers. Que se passe-t-il par exemple si on ne souhaite plus reporter une modification ? Afin de pouvoir isoler vos modifications, il est plus sage de les indexer via des commits distincts. GIT permet ensuite d'annuler un commit précis.

Autres tutos :
french flag Git dans une coquille de noix
english flag git ready

comparaison GIT avec d'autres [i]subversion systems[/i]
english flag Why git is better than X
Dorthea
on Nov. 12 2021 at 08:37 pm GMT
Acquistare viagra online e legale viagra generico prezzo farmacia natural viagra gnc cheap generic viagra online uk generic viagra company
Lasix - on Nov. 13 2021 at 02:15 am GMT
Zentel With Free Shipping
Celina
on Nov. 10 2021 at 08:06 pm GMT
Online female viagra in india acquisto viagra generico prezzo best price for viagra 100mg buy viagra cheap online is generic viagra legal in australia
Zane
on Oct. 19 2021 at 11:49 pm GMT
Donde puedo comprar viagra online comprar viagra cialis o levitra genericos buy viagra order is viagra generic safe generic viagra and premature ejaculation
Lenore
on Oct. 18 2021 at 11:22 pm GMT
Cheapest place to buy viagra billig viagra online is there viagra for women viagra online herbal club comprare viagra online in italia
Diana
on Sep. 28 2021 at 09:05 pm GMT
Can anyone buy viagra online buy canadian generic viagra online generic viagra online reviews nome do remedio viagra generico order brand name viagra online
Phoebe
on Sep. 28 2021 at 01:29 am GMT
Cheap generic viagra online uk buy uk viagra online alternative for viagra best online site to buy viagra viagra 25mg online india
Christine
on Sep. 26 2021 at 09:04 pm GMT
Generic viagra 100mg sildenafil buy viagra online paypal generic viagra online canada buy viagra online in the us buying viagra online forum
Emory
on Aug. 2 2021 at 04:15 pm GMT
Hookup Women Uses Free Affairs? An Incredible Horizontal Advantage!

Totally free hookup girls wiki hookups online is the solution if you're tired with planning to pubs and organizations simply to be ignored, as well as more serious, laughed at. I am aware what it's like because I've been there. I had been individual and distressed back into the day -- I required a whole new spouse -- however i continued striving because I needed not any other choice.

If you're a single guy who wants to hookup with attractive girls without planning to those locations in which the ladies are on your own, this report might just alter your lifestyle. It will explain why dating on-line is the perfect option if you're a masculine that is shy to method a wonderful female in a pub or club.
Merrill
on Jul. 24 2021 at 06:31 am GMT
Hydroxychloroquine high hydroxychloroquine safe
Terrell
on June 19 2021 at 05:02 am GMT
Tadalafil cost
Nola
on June 8 2021 at 07:59 pm GMT
Thanks for finally writing about >Utilisez GIT pour maintenir vos scripts YACS - Cybermedium
Ricky
on June 2 2021 at 10:22 pm GMT
Tadalafil gel
Levi
on June 2 2021 at 10:05 pm GMT
Tadalafil 60 mg for sale
Karin
on June 2 2021 at 09:54 pm GMT
Generic tadalafil 40 mg
Geraldine
on June 2 2021 at 09:16 pm GMT
Buy tadalafil us
Kristian
on June 2 2021 at 09:02 pm GMT
Tadalafil cost in canada
Anitra
on June 2 2021 at 05:24 pm GMT
What is tadalafil
Andrea
on May 29 2021 at 08:25 am GMT
Hookup Women Employs Free of charge Matters? A Fantastic Horizontal Reward!

Free of charge hookup females chat hookups online is the perfect solution if you're sick and tired of planning to bars and organizations only to be prevented, or perhaps even worse, laughed at. I know what it's like because I've been there. I found myself single and desperate during the day time -- I essential a whole new spouse -- however i continued striving because I needed not any other choice. If you're one particular guy who wishes to hookup with hot ladies without going to those spots in which the ladies are alone, this article may just alter your existence. It can make clear why internet dating online is the perfect substitute if you're a men who is too shy to strategy a wonderful female inside a bar or club.
Patty
on May 12 2021 at 10:45 am GMT
Superb blog! Do you have any helpful hints for aspiring writers? I'm hoping to start my own blog soon but I'm a little lost on everything. Would you recommend starting with a free platform like Wordpress or go for a paid option? There are so many choices out there that I'm totally confused .. Any suggestions? Thanks!
Maryanne
on May 6 2021 at 12:40 am GMT
Hey there! Quick question that's totally off topic.

Do you know how to make your site mobile friendly? My web site looks weird when browsing from my iphone. I'm trying to find a theme or plugin that might be able to resolve this issue. If you have any suggestions, please share. Appreciate it!
Tracy
on May 1 2021 at 07:41 am GMT
Cialis 5mg best price australia cheap generic cialis india india cialis online
Nicole
on May 1 2021 at 03:11 am GMT
Natural amoxicillin alternatives that work
Drakusemn - on Sep. 30 2021 at 03:47 pm GMT
Viagra viagra alternate viagra and blocked nose <a href="http://withoutdctr.com/#">buy viagra online without prescription </a> - order viagra online http://withoutdctr.com/# - viagra without a doctor prescription buy viagra online total members
dgfdbgfbt
on Apr. 30 2021 at 07:49 am GMT
I thank you for the information! I was looking for and could not find. You helped me! www.tellhappystar.com survey
Jenifer
on Apr. 28 2021 at 09:44 pm GMT
Hydroxychloroquine mexican pharmacy
Rene
on Mar. 16 2021 at 08:07 am GMT
Hookup Females Employs Free Affairs? A Great Side to side Gain!

Cost-free hookup girls see page online is the solution if you're fed up with likely to cafes and organizations only to be prevented, and even even worse, laughed at. I am aware what it's like because I've been there. I had been solitary and desperate in the working day -- I necessary a fresh lover -- but I continued trying because I had hardly any other option. If you're just one person who wants to hookup with alluring women without planning to those spots where ladies are alone, than the article might just make positive changes to daily life. It is going to clarify why internet dating on the web is the greatest choice if you're a male who seems to be too shy to strategy a beautiful girl inside a bar or club.
Carroll
on Mar. 11 2021 at 12:37 am GMT
Buy college research papers https://paperesearchelp.com - good research topic write research paper research papers to buy write a research paper example of thesis research paper
Omspvj - on Mar. 11 2021 at 04:43 pm GMT
Generic tadalafil canada - <a href="http://tadalafiltbs.com/">can tadalafil be crushed</a> tadalafil 20mg http://tadalafiltbs.com/
Ian
on Mar. 10 2021 at 06:45 pm GMT
Sample dissertation https://dissertationget.com - online dissertations successful dissertations dissertation abstracts international editing dissertations revising dissertation
Werner
on Mar. 8 2021 at 06:27 pm GMT
A written article https://researchpapero.com - how to write a compelling essay amazon marketing strategy research paper thesis examples for research papers pay to write an essay legal research paper format
Cheryle
on Mar. 8 2021 at 01:08 am GMT
Topics for cause and effect essay https://essaywritero.com - writing essays examples of thesis statements for essays essay on global warming essay check buy college essay
Malinda
on Mar. 7 2021 at 01:31 am GMT
Sat essay scores https://getessaypro.com - buy essay papers how to cite essays write essay online cheap essay buy how to start an introduction to an essay
Diane
on Feb. 25 2021 at 05:53 pm GMT
Generic viagra from us pharmacy https://sviagaragec.com - buying viagra generic viagra without subscription viagra purchase best canadian pharmacy generic viagra without subscription
Misty
on Feb. 25 2021 at 04:49 pm GMT
Professional essay https://writessaypro.com - write me an essay editing the essay research essay example how to write a compelling essay grading essay
Isobel
on Feb. 24 2021 at 11:22 pm GMT
An example of a comparative essay https://essaywritinge.com - steps to write an essay essay introduction sample college essays pay someone to write your essay ideas for persuasive essay
Jonathan
on Feb. 23 2021 at 05:20 am GMT
Viagra soft tabs https://saviagarars.com - female viagra reviews buy viagra pills non prescription viagra online viagra prescriptions online pharmacy viagra
Charles
on Feb. 14 2021 at 01:00 am GMT
Viagra buy https://viagaracon.com - cheap generic viagra best price viagra order viagra tablets viagra cheapest order viagra
Abdgfrupt - on Apr. 23 2021 at 03:34 am GMT
Sildenafil citrate https://canadianeve21.com/ Olanzapine
Bbdfzoox - on Apr. 25 2021 at 01:27 am GMT
Women in viagra commercials https://gensitecil.com/ viagra soft
GvdbIngep - on Apr. 25 2021 at 03:57 am GMT
Is tadalafil the same as cialis http://boxtadafil.com/ - tadalafil 20mg dosage canadian pharmacy tadalafil 20mg
LhdvPiofs - on Apr. 25 2021 at 11:10 pm GMT
Cialis professional vs cialis http://asciled.com/ buy cialis united states
Fbsffrupt - on Apr. 28 2021 at 04:15 pm GMT
No prescription pharmacies http://uspharmus.com/ Gyne-Lotrimin
Lrbsfrupt - on Apr. 29 2021 at 12:45 am GMT
Levitra discount card http://uslevitraanna.com/ viagra levitra prices
RfvbPiofs - on May 1 2021 at 11:19 am GMT
Cialissite:au https://cileve.com/ - cialis buy paypal cialis onine
Anoofrupt - on May 3 2021 at 10:33 pm GMT
Qual a diferença entre levitra e viagra http://llviagra.com/ viagra decision
LbsoPiofs - on May 7 2021 at 12:59 am GMT
Acheter cialis http://ucialisdas.com/ cheap cialis professional
Jebgfrupt - on May 7 2021 at 02:06 am GMT
Cytoxan https://pharmacylo.com/ costco pharmacy pricing
RebfPiofs - on May 12 2021 at 06:47 pm GMT
Cialis to buy http://rcialisgl.com/ - cialis with no prescription how much is a cialis prescription with no insurance
LbsoPiofs - on May 14 2021 at 06:23 am GMT
Cheapest cialis 5mg https://ucialisdas.com/ how to buy cialis online
Jebgfrupt - on May 15 2021 at 02:34 am GMT
Go coupon http://pharmacylo.com/ Cilostazol
Lebnfrupt - on May 17 2021 at 08:08 am GMT
Onlinecanadianpharmacy 24 http://xlnpharmacy.com/ Ciplox
LbsoPiofs - on May 20 2021 at 02:46 pm GMT
Best price for cialis 20mg https://ucialisdas.com/ cialiscanada
GtnbIngep - on May 21 2021 at 01:12 pm GMT
Viagra 100 mg http://jokviagra.com/ viagra without a doctor prescription canada
Anoofrupt - on May 21 2021 at 05:23 pm GMT
What if you snort viagra https://llviagra.com/ - tylko oryginalna viagra eat food with viagra
RebfPiofs - on May 24 2021 at 06:42 pm GMT
Pay pal for cialis http://rcialisgl.com/ cialis 25mg canada
fruptAni - on May 25 2021 at 09:37 pm GMT
Pictures of prescription drugs https://pharmacyken.com/ - licensed canadian pharmacies accutane online canadian pharmacy
Piofsloh - on May 28 2021 at 02:30 pm GMT
Walgreens cialis prices https://rcialisgl.com/ - is cialis safe for heart patients cialis online without
PiofsVed - on May 29 2021 at 02:14 am GMT
Order cialis online nb canada https://krocialis.com/ - cialis promise program cialis tinnitus
Dbgvfrupt - on Sep. 18 2021 at 07:22 am GMT
Dissertation consultant <a href="https://dissertationony.com/ ">umi dissertation express</a>
SntdGeds - on Sep. 19 2021 at 04:24 pm GMT
College application essay help online <a href="https://essaydbze.com/ ">community service essays</a>
CntfTiems - on Oct. 9 2021 at 05:17 pm GMT
Viagra einnahme ohne potenzprobleme <a href="https://xvigraux.com/ ">viagra drm</a>
Dnrvfrupt - on Oct. 9 2021 at 11:30 pm GMT
Wie sicher ist viagra <a href="https://avigraev.com/ ">regular viagra dose</a>
CntfTiems - on Oct. 12 2021 at 03:35 pm GMT
Viagra tablets pictures <a href="https://xvigraux.com/ ">achat viagra internet france</a>
Dnrvfrupt - on Oct. 12 2021 at 09:47 pm GMT
Viagra u zdrowych <a href="https://avigraev.com/ ">viagra birds</a>
Dnrvfrupt - on Oct. 17 2021 at 10:24 am GMT
Hombre se toma 15 pastillas de viagra <a href="https://avigraev.com/ ">werking viagra 100mg</a>
Dnvxfrupt - on Oct. 28 2021 at 02:40 pm GMT
Sildenafil citrate 20mg cost <a href="https://bysildenafilus.com/ ">sildenafil good rx</a>
Roolfrupt - on Oct. 28 2021 at 02:51 pm GMT
Sildenafil uk <a href="https://oksildenafilused.com/ ">what is sildenafil made from</a>
CnrvTiems - on Oct. 28 2021 at 02:57 pm GMT
Order sildenafil citrate <a href="https://isviagr20tab.com/ ">buy generic viagra canadian pharmacy</a>
Arnhrutle - on Oct. 28 2021 at 03:19 pm GMT
Online colleges pharmacy tech <a href="https://bodypharmmedic.com/ ">is canadian pharmacy real</a>
Fujfcrawl - on Oct. 28 2021 at 08:53 pm GMT
Selamectin vs ivermectin <a href="https://lordrxstromectol.com/ ">treating heartworms with ivermectin and doxycycline</a>
SrnjGeds - on Oct. 28 2021 at 09:37 pm GMT
Ivermectin in canada <a href="https://onivermectin20tab.com/ ">ivermectin injectable for dogs</a>
CemhTiems - on Oct. 28 2021 at 09:41 pm GMT
Ivermectin for humans dosage <a href="https://showstromectolby.com/ ">ivermectin dosage for scabies in humans</a>
Drnmdulse - on Oct. 28 2021 at 09:43 pm GMT
Tadalafil daily dose <a href="https://orgatadalafilit.com/ ">letairis and tadalafil</a>
Asmvrutle - on Oct. 28 2021 at 10:00 pm GMT
How long does it take for ivermectin to work on mites <a href="https://stivermectinanti.com/ ">ivermectin pancreatic cancer</a>
HmgbPrice - on Oct. 28 2021 at 10:04 pm GMT
Tadalafil alternative <a href="https://estadalafiltreat.com/ ">cialis tadalafil cheapest online</a>
Fujfcrawl - on Oct. 29 2021 at 12:27 pm GMT
Ivermectin and covid <a href="https://lordrxstromectol.com/ ">ivermectin tractor supply</a>
Roolfrupt - on Oct. 29 2021 at 01:06 pm GMT
Sildenafil citrate 50mg tab <a href="https://oksildenafilused.com/ ">sildenafil 200mg</a>
SrnjGeds - on Oct. 29 2021 at 01:15 pm GMT
Ivermectin for heartworm <a href="https://onivermectin20tab.com/ ">ivermectin for covid19</a>
CemhTiems - on Oct. 29 2021 at 01:16 pm GMT
Ivermectin apple paste <a href="https://showstromectolby.com/ ">what is ivermectin derived from</a>
Drnmdulse - on Oct. 29 2021 at 01:19 pm GMT
Goodrx tadalafil <a href="https://orgatadalafilit.com/ ">100mg cialis tadalafil</a>
Asmvrutle - on Oct. 29 2021 at 01:38 pm GMT
Ivermectin injectable dose for goats <a href="https://stivermectinanti.com/ ">ivermectin antiviral</a>
HmgbPrice - on Oct. 29 2021 at 01:41 pm GMT
Cipla tadalafil 20 mg <a href="https://estadalafiltreat.com/ ">tadalafil com</a>
Mathew
on Feb. 13 2021 at 04:34 am GMT
How much tadalafil is safe to take https://gecialiscan.com - cialis soft how long before cialis takes effect buy 36 hour cialis online where to buy cialis online vergleich levitra viagra cialis
Kourtney
on Feb. 12 2021 at 12:25 pm GMT
Viagra price https://goviagarato.com - viagra online without prescription generic viagra online pharmacy generic viagra 50mg viagra woman generic name for viagra
Dessie
on Feb. 8 2021 at 02:05 am GMT
Cialis generique espagne https://gencialisteg.com - prices of cialis cialis foglio illustrativo un cuarto de cialis tadalafil tablets cual es la dosis ideal de cialis
Roma
on Feb. 7 2021 at 12:25 pm GMT
Viagra prescriptions over internet https://reviagaraget.com - viagra without prescription cost of viagra per pill where to buy viagra online safely female viagra generic viagra overnight delivery usa
Marie
on Feb. 7 2021 at 03:50 am GMT
Viagra tablet https://viagarado.com - viagra viagra professional viagra soft pills viagra tablets for men viagra pills buy
Floyd
on Feb. 6 2021 at 06:02 am GMT
Does cialis pill look like https://recialisdo.com - online pharmacy cialis cialis ohne rezept kaufen cialis 24 hr. delivery cialis soft tadalafil atc code
Darnell
on Feb. 6 2021 at 12:39 am GMT
Prix du cialis 20mg en france https://gocialisget.com - cheap cialis online cialis testosterone replacement are there any other uses for cialis online cialis tadalafil shop empfehlung
Darin
on Feb. 6 2021 at 12:02 am GMT
Enhancement male https://genviagaraget.com - sildenafil generic buying viagra online pharmacy canada buy female viagra online viagra online canadian pharmacy
Carri
on Jan. 30 2021 at 07:57 am GMT
Buy discount viagra https://viagarabig.com - order viagra viagra pills order viagra professional viagra canadian generic viagra pills
Margot
on Jan. 26 2021 at 12:00 pm GMT
Female pink viagra 100mg pills https://viagaramu.com - buy viagra no prescription viagra prices buy viagra las vegas generic viagra online pharmacy when generic viagra in usa
Zella
on Jan. 21 2021 at 08:40 pm GMT
Viagra coupons https://viagaraga.com - buy viagra pills what do generic viagra pills look like herbal viagra pills online generic viagra viagra online pharmacy
Christopher
on Jan. 15 2021 at 03:11 am GMT
Buy viagra online https://silviagramed.com - viagra online canadian pharmacy viagra pill for men viagra no prescription generic viagra soft best price for viagra
Harlan
on Jan. 12 2021 at 01:58 am GMT
Can you buy cialis in mexico https://gencialiscan.com - cialis cost tem generico do cialis cialis daily vs as needed generic cialis cost tadalafil dependency
Lloyd
on Nov. 23 2020 at 01:34 pm GMT
Viagra without a prescription buy viagra
Elma
on Nov. 5 2020 at 12:49 pm GMT
Покажите партнеру, какие конкретно ласки вам приятны. Такая забава очень возбуждает, особенно парней, не считая такого, это самая эмоционально очень сближает пару. Каким бы ни был близким и родимым человек – любой из нас уникален и имеет свои эрогенные зоны и точки побуждения. Не стыдитесь показать, будто вам мило – у вас очень признательный зритель.

Сейчас о медли. Ежели в движение нескольких лет существовать в однообразном графике, где недостает места инстинктивности и новым изобретениям, сексапильное хотение имеет возможность приступить угасать само собой. Этак что пытайся освобождаться от рутины и находи часик на интимное времяпровождение с мужем с утра, во время обеденного перерыва, а еще никак не ограничивайся одним половым актом, ежели вы пара хотите расширения.

Не стыдись сказать о сексе и обсуждать с мужем интимные моменты – так возникает дополнительный уровень доверия, а ему наверное придутся сообразно душе твои фантазии.

Принципиально! Убедись, будто вы пребывайте одни и никто не прервет вас «на самом увлекательном местечке», а еще заранее позаботься о гигиене.

«Половой акт – самая лишь малая лагерь сексуальных взаимоотношений. Эротические которые были использованы и аксессуары также приветствуются, ежели учитывается единодушие двух партнёров. Высококачественные эротические и в том числе и порнографические использованные материалы способствуют расширению абстрактного и чувственного опыта человека, но они различные для каждого возраста», - сообщает о том психотерапевт.

Сексуальные игры На этом месте большинство дам обычно задумывается: это самая точно не для нас/ его это не введёт/ мы станем чувствовать себя неловко/ как самая вообщем (необходимое подчеркнуть). Ежели ты задумалась, как свершить мужу милое в любовном намерении, устремляемся развеять твои колебания: ролевые забавы — наверное не только халат медсестрички либо какая-либо другая униформа (но и эти варианты располагают пространство существовать!). Попробуйте совместно с мужем закрутить какой-никакой-или сценарий, в котором вы пара будете чувствовать себя необычно, но в то ведь время довольно твердо.

http://www.sussiebox.com/__med...=xxxfototube.ru

Files

Gitignore.zip

shared by Alexis Raimbault on June 23 2010 at 01:20 pm GMT · 61 downloads · 402 bytes · in Utilisez GIT pour maintenir vos scripts YACS

details

page de test html testgit.html

shared by Alexis Raimbault on June 7 2010 at 03:54 pm GMT · 113 downloads · 343 bytes · in Utilisez GIT pour maintenir vos scripts YACS

details

feuille de style style.css

shared by Alexis Raimbault on June 7 2010 at 03:53 pm GMT · 62 downloads · 278 bytes · in Utilisez GIT pour maintenir vos scripts YACS

details

Fichiers provennant de yacs9.11

shared by Alexis Raimbault on June 7 2010 at 03:50 pm GMT · 200 downloads · 16,351 bytes · in Utilisez GIT pour maintenir vos scripts YACS

details

fichiers provenant de yacs 10.5

shared by Alexis Raimbault on June 7 2010 at 03:50 pm GMT · 57 downloads · 15,804 bytes · in Utilisez GIT pour maintenir vos scripts YACS

details

photo
webdesign templating by webmaster Alexis Raimbault