Minimál git workflow drupal fejlesztéshez

  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.
Kategória: 
Leírás
Minimál git workflow drupal fejlesztéshez

Mostanában egyre többet dolgozok együtt másokkal. Hogy ne túrjuk szét egymás dolgait, ajánlott ugye verziókezelő használata, ami mi más lehetne drupal project esetén, mint a git.

A git alapokat megtanulni nem nehéz, ez a minimál workflow is mindössze néhány parancsot fog használni. Hogy miért minimál? Aki most dolgozik először gittel, az ilyen csudaságok, hogy branchek, submodule-k elég nehezen emészthető. Azért is minimál, mert ezeket minimum tudni kell, hogy csoportmunkában lehessen dolgozni.

Ez a folyamat feltételezi, hogy a közös munka egy fejlesztői szerveren zajlik, amihez mindenkinek van ssh hozzáférése. Mellette localhoston is van egy naprakész másolat a fájlrendszerről, és egy (legalább több-kevésbé) naprakész adatbázissal telepített drupal. Feltételez továbbá egy minimális parancssor használat tudást. Opcionális, bár erősen ajánlott: drush

Ami tilos: FTP, SFTP, rsync, vagy bármilyen egyéb eszközt használni a saját géped, és a fejlesztői szerver fájljainak szinkronizálására. Minden ilyen feladatot a git fog ellátni továbbiakban.

Akkor nézzünk szét először a fájlrendszer szintjén.
Megbeszéltük, hogy lesz a saját gépeden is egy fájlrendszer, ez a Te saját local repository-d, vagyis helyi tároló. Ezen Te szabadon barkácsolhatsz, ha valamivel úgy gondolod, kész vagy, kirakod a fejlesztői szerverre. (lásd később) Ez az a könyvtár, ahol a drupal telepítésed index.php-ja van.

Van ugye a fejlesztői szerveren is egy alap drupal telepítési mappa, ami a public_html, var/www, stb könyvtárban van, mindegy, a lényeg, hogy itt van az index.php. Ezt hívják gitül fejlesztői repository-nk, vagyis tárolónak.

Van egy harmadik is, amit bare repositorynak hívnak. Ez röviden arra való, hogy ő irányítja a fejlesztői szerveren és a fejlesztők saját gépei közötti fájlrendszerek szinkronizálását. Ez a fejlesztői szerveren egy nem publikus mappa, konkrétan drupal fájlrendszert sem tartalmaz, és igazából közvetlenül nem is fogsz vele találkozni. Ha én készítem el, akkor egyszerűen megadom a címét, egyszer beállítod, és vége, több dolgod nincs vele.

És itt jön a lényeg, hogy miért tilos bármilyen egyéb eszköz szinkronizálásra, sőt, közvetlenül a fejlesztői szerveren bármilyen fálj babrálása: Ha Te fogod, és FTP-vel felpakolsz valamit a fejlesztői szerverre, akkor ennek a "bare" repositorynak gőze sem lesz arról, hogy te felraktad, ergo a többi fejlesztő sem fog találkozni a módosításaiddal.
Szóval a párbeszéd a fejlesztői szerver és a bare repository között ebben a minimál folyamatban teljesen egyirányú, csak a bare repo rendezgetheti a fejlesztői szerver dolgait!

Viszont kétirányú a párbeszéd a saját helyi repod, és a bare repo között. Te a bare repoval fogod szinkronizálni a saját helyi fáljrendszeredet, a bare repo fogja átvinni ezt a fejlesztői szerverre. Ugyanerről a bare reporol fogják leszedni a többiek a Te módosításaidat.

Készen vannak a repok, van ssh kulcsod, megadtam a bare repo címét, akkor először szerezd meg, ahol épp a fejlesztés áll:

[geshifilter-code] git clone ssh://[a bare repo címe] [/geshifilter-code]

Ezzel a saját helyi fáljrendszered egy alkönyvtárában (ez többnyire project_neve lesz, ha én csináltam a bare repot) létrejön a saját helyi repod.

Kezdjük el a munkát, letöltesz mondjuk egy új modult:
[geshifilter-code] // a $ jelzi a promptot $ drush dl cck [/geshifilter-code]

Ellenőrizd, hogy állunk a gitben:
[geshifilter-code] $ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # sites/all/modules/cck nothing added to commit but untracked files present (use "git add" to track) [/geshifilter-code]

Ahogy az üzenet is írja, itt bizony olyan dolgok vannak a fájlrendszerben, amiket a git még nem kezel, őket nem ismeri, mindjárt megmutatjuk a gitnek, de egyelőre töltsük le még mondjuk a views modult is.

[geshifilter-code] $ drush dl views [/geshifilter-code]

Nézzük meg most a git statust:

[geshifilter-code] : git status # On branch 6.x # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # sites/all/modules/cck/ # sites/all/modules/views/ nothing added to commit but untracked files present (use "git add" to track) [/geshifilter-code]

Most már a views is megjelent, ideje bemutatni a két ismeretlenünket a gitnek, erre több lehetőségünk is van, a lényeg és a parancs: git add
Ha a git add után beírjuk a statusban látott könyvtárat, pl sites/all/modules/cck/, akkor csak a cck könyvtárat adjuk hozzá egyelőre a repositoryhoz. Ez akkor hasznos, hogyha egyszerre több modult, sminket letöltesz, de dokumentálni szeretnéd külön-külön, vagy netán próbálgatsz localhoston egy modult, amit nem akarsz véglegesen bejegyezni a gitbe.

Ha a git add után .-ot (pont) írunk, akkor az összes a statusban felsorolt könyvtár be lesz jegyezve.
Tegyük most ezt:

[geshifilter-code] $ git add . [/geshifilter-code]

Itt látszatra semmi nem történik, de ha nézel még egy git statust, bizony látható, hogy kilóméteres # new file:-al kezdődő sort kapsz. Ez jelenti azt, hogy most már a git ismeri ezeket a file-okat, rögzítette az indexébe, és "Changes to be committed", tehát rögzítésre váró változások találhatók a reponkban:

[geshifilter-code] : git status # On branch 6.x # Your branch is ahead of 'origin/6.x' by 1 commit. # # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: sites/all/modules/cck/CHANGELOG.txt [/geshifilter-code]

Már csak jóvá kell hagynunk, , rögzítenünk kell a változásokat, ez az ún. "commitolás". Commit során érvényesítjük a git statusban listázott, "Changes to be committed"-el jelölt módosításokat. Elég meglepően a git commit parancs való erre.

Ezt is hasonlóképpen használhatjuk, mint a git add-t. Ha git commit sites/all/modules/cck-val kezdjük a parancsot, akkor csak a cck modult commitoljuk. Itt viszont nem használhatunk .-ot az összes módosítás bejegyzésére, helyette bizonyos kapcsolók vannak, ezek közül a leggyakoribbak, amik kellenek:
-a : Ő jelenti azt, amit a git addnál a . Vagy "all", tehát minden változást commitolni akarunk
-m : Ezután adhatjuk meg a commit üzenetet "" között.

Ha már így szóba kerültek a commit üzenetek:
Minden commithoz tartozik egy üzenetet. Ezt tekinthetjük egyfajta fejlesztési naplónak is, ami eleinte fáj a fejlesztőnek, később nem tud nélküle élni. Egy rövid kitérővel szemléltetném a commit üzenet hasznát: Egyszer lett egy meredek hibaüzenet. Megkerestem, hogy mikortól csinálja ezt a hibát, a git naplóból visszanéztem, hogy mi is történt akkor, és hopp, meg is volt a bűnös. De még rengeteg példa van, főleg csoportmunkát tekintve, hogy miért jó a commit üzenet.

És akkor milyen a jó commit üzenet? (Ezekben semmi kötelező érvényű nincsen, csoporton belüli megegyezés kérdése, tapasztalataim szerint így érdemes használni)

  1. Angol nyelvű (sosem tudni, mikor, hová kerül a munkád a későbbiekben)
  2. Semleges személyű (Nem kell, hogy I change.. stb.. "Add module cck", 'aszt csókolom"
  3. Azonosított, ha lehet mihez kötni: ez arra jó, hogyha egy megoldást pl egy drupal.org issue alapján készítettél el, ha patch is van benne, akkor egyenesen kötelező: pl "#[issue-nid]: #[comment-number] change.."
  4. Ha nem dorgról, hanem máshonnan jött az instrukció, akkor lehetőleg a forrást is érdemes jelezni: "dhu#[nid]: #[comment-number] etc.."
  5. Ez a jelölés különösen fontos lehet, hogyha issue-trackert is használunk, pl atriumot, mert a naplóból vissza lehet később keresni, hogy egy adott issue-hoz milyen módosításokat csináltunk"
  6. És kerülendő: "Some other changes" Szóval azért tömören legyen benne, mi is történt igazából.

Na, ha már így tudjuk, mi az a commit, commitoljunk egyet, legyen most egyszerre az összes módosítás commit üzenettel:

[geshifilter-code] : git commit -am "Add module cck and views" [6.x a1c18d8] Add module cck and views 575 files changed, 135851 insertions(+), 0 deletions(-) create mode 100644 sites/all/modules/cck/CHANGELOG.txt create mode 100644 sites/all/modules/cck/DEVELOPER.txt ... [/geshifilter-code]

Nézzük mi a helyzet git statussal ezek után:

[geshifilter-code] : git status # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # nothing to commit (working directory clean) [/geshifilter-code]

Akkor értelmezzük ezt egy kicsit!
On branch master: A branchekbe most direct nem megyek bele. Ebben a minimál workflowban mindig a master nevű branchben dolgozunk. A branch egy fejlesztői ágat jelent, ami kvázi olyasmi, mint egy gyöngyfüzér, csak nem gyöngyöket, hanem commitokat fűzünk rájuk szépen, sorban a fejlesztés folyamatán.

nothing to commit (working directory clean): Ez azt jelenti, hogy a mi kis helyi reponk tiszta, nincs semmi új file, amit hozzá kell adni (git add), nincs semmi új módosítás, amit commitolni kell.

Your branch is ahead of 'origin/master' by 1 commit.: Hopi, ez elég baljósnak tűnik, és ezért is maradt utoljára. Ez a sor azt mondja nekünk, hogy az origin nevű távoli tárolón master branch-éhez képest egy committal előre járunk. (ez így nem a legpontosabb, ez most minimal git)

Fudenehézezt elmagyarázni, de megpróbálom:
Emlegettem az elején, hogy több reposítory van, ott van a bare, meg ez a bizonyos helyi repo, amihez most hozzáadtuk a views meg a cck modulokat. Mindegyik reponak saját branche van, amit most éppen masternek hívnak. Ez azt jelenti, hogy mindegyik reponak van egy saját gyöngyfüzére. Amikor mi commitolunk, akkor mi újabb gyöngyöt fűztünk a branchünkre, viszont a távoli repo branchén még az a gyöngy nincs ott.

Na ezt pótoljuk rögtön, de előtte nézzük, mi az az origin: Az origin nem más, mint a távoli bare reponk álneve. Próbáld ki, írd be, hogy git remote -v, és azt fogod látni, hogy ott van az "origin", mellette pedig a bare repo címe. Ezt az álnevet mindjárt arra fogjuk használni, hogy "megszólítsuk" a távoli reponkat.

Ezzel elérkeztünk oda, hogy szinkronizálunk, magyarul feltoljuk a fejlesztői szerverre, amit eddig ügyködtünk. Erre a git push parancs való. A legelső git push parancsunkat mindenképpen így adjuk ki:

[geshifilter-code] git push -u origin master [/geshifilter-code]

Ezzel azt mondtuk, hogy a git tolja fel az origin álnevű távoli repoba a master nevű gyöngyfüzérünket, és a -u pedig azt jelenti, hogy mostantól a mi helyi reponk master nevű gyöngyfüzérét összekötöttük az origin nevű távoli repo master nevű branchével.
Tehát a továbbiakban a szinkronizáláshoz elég ennyit beírni:

[geshifilter-code] git push [/geshifilter-code]

Szuper, már kint vannak a dolgaink. Azonban csoportban dolgozunk, tehát előfordulhat, hogy más is csinált már valamit. Ilyenkor a git push hibaüzenetet fog adni, és reklamál, hogy töltsük le, amit mások is felpakoltak.
Erre való a git pull parancs. Ha már git push-sal sikerült összekötnünk a saját reponkat a távolival, akkor elég ennyi: git pull
Ha még nem, akkor

[geshifilter-code] git pull origin master [/geshifilter-code]

Magyarul: Git, rántsd le légyszi az origin álnevű távoli repo master gyöngyfüzérének a módosításait.

Nos, és ezzel gyakorlatilag felfegyvereztük magunkat a minimálisan szükséges git ismeretekkel, remélem, picit sikerült a git logikáját is megértetni.

Akkor végére néhány okosság:

1. Napi 1 commit nem commit. Próbálj meg feladatorientáltan commitolni. Ha pl css-ben megformáztad a commenteket, akkor commit, ha valami fontos hibát javítottál, megint commit. (Lásd a post elejére beszúrt képet)
2. Próbáld meg a promptod gitbarátra hozni: http://www.google.hu/search?aq=f&sourceid=chrome&client=ubuntu&channel=c... Itt rengeteg olyan PS_1 beállítást találsz, amivel már parancssorból látod, hogy hogyan állsz a local repodban.
3. Ha velem dolgozol, általában találsz a gyökérkönyvtárban egy .gitignore nevű fájlt. Ebben ilyenek vannak, hogy sites/default/settings.php, .htaccess, szóval azokat a fileokat, amiket a git automatikusan nem vesz figyelembe. Ha valami olyasmi van a könyvtáradban, ami szemét (pl egy ide projectbeállításai), akkor ebbe a .gitignore nevű fileba pakold bele, és akkor nem kerül fel a szerverre.
4. Guglizz utána: git alias Nagyban megkönnyíti a munkát, később én is írok majd róla.
5. Próbáld ki időnként ezt: git diff, megmutatja, hogy milyen különbségek nincsenek még elcommitolva, és szokod a patch látványát is.

Hu, remélem, nem hagytam ki semmit, és ez alapján sikerül elindulni.
Ha kérdés van, noszarajt, sztem van anonim comment is.

Hozzászólások

I'm really enjoying the

I'm really enjoying the design and layout of your blog. It's a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a designer to create your theme? Excellent work!|

That is very interesting,

That is very interesting, You're an overly skilled blogger. I've joined your rss feed and look forward to seeking more of your great post. Also, I have shared your web site in my social networks|

It'll help rejuvenate and

It'll help rejuvenate and then stay hydrated skin having hydrating emollients like glycerin.

PushUpsPushups could be the

PushUpsPushups could be the device to your fitness routine.

And each getting pregnant is

And each getting pregnant is utterly distinct.

Stereopsis and additionally

Stereopsis and additionally differentiation.

Undoubtedly one of my

Undoubtedly one of my favorite features is to try to play tennis.

So as to make a great effect

So as to make a great effect after a talk to, it is essential that you dress up appropriately.

Rather then looking for the

Rather then looking for the first of all home business you think of, take your time to investigate several corporations and remedies.

One answer begun materials

One answer begun materials that include fat (" up " virtually 27 % during rupee terminology) and also rare metal (further up pretty much 38 proportion with rupee terms and conditions)...

Inspiring story there. What

Inspiring story there. What occurred after? Take care!|

Its such as you learn my

Its such as you learn my mind! You appear to understand so much approximately this, such as you wrote the ebook in it or something.
I think that you could do with some percent to force the message home a bit, but instead of that, this is magnificent blog.
A great read. I will certainly be back.

Hi, I think your blog could

Hi, I think your blog could possibly be having browser compatibility issues.

When I look at your site in Safari, it looks fine but when opening in Internet Explorer, it has some overlapping
issues. I just wanted to give you a quick heads up!
Besides that, great site!

After looking into a few of

After looking into a few of the articles on your
website, I honestly like your technique of blogging.
I book marked it to my bookmark site list and will be checking back in the near future.
Please visit my website too and let me know what you think.

Hey I know this is off topic

Hey I know this is off topic but I was wondering if you knew of any widgets I
could add to my blog that automatically tweet my newest twitter updates.
I've been looking for a plug-in like this for quite some time and was hoping maybe you would have
some experience with something like this. Please let me know if you run into anything.
I truly enjoy reading your blog and I look forward to your new updates.

I am regular visitor, how are

I am regular visitor, how are you everybody? This post posted
at this web site is truly nice.

I could not refrain from

I could not refrain from commenting. Very well written!

I like reading through an

I like reading through an article that can make people think.
Also, thanks for allowing me to comment!

If some one desires to be

If some one desires to be updated with hottest technologies therefore
he must be pay a quick visit this web site and be up to date all the
time.

Independance Immobilière -

Independance Immobilière - Agence Dakar Sénégal
Av. Fadiga, Immeuble Lahad Mbacké
BP 2975 Dakar
+221 33 823 39 30

Agence Immobilière Dakar

This is my first time go to see at here and i am really impressed
to read all at alone place.

You can definitely see your

You can definitely see your expertise in the work you write. The arena hopes for more passionate writers like you who are not afraid to say how they believe. At all times go after your heart.|

Good day! Do you use Twitter?

Good day! Do you use Twitter? I'd like to follow you if that
would be okay. I'm undoubtedly enjoying your blog and look forward to
new posts.

Hi there! I simply would like

Hi there! I simply would like to offer you a big thumbs up for your excellent information you have right here on this
post. I'll be returning to your web site for more soon.
Jim's San Jose Carpet Cleaning
780 S 3rd St, San Jose, CA 95112
3408-351-1063
colettemackie2641 [at] gmail [dot] com

Appreciate this post. Let me

Appreciate this post. Let me try it out.

For the reason that the admin

For the reason that the admin of this site is working, no uncertainty very shortly it
will be famous, due to its feature contents.

Good day! I know this is kind

Good day! I know this is kind of off topic but I was wondering which blog platform
are you using for this website? I'm getting sick and tired of Wordpress
because I've had problems with hackers and I'm looking
at options for another platform. I would be awesome if you could point me in the direction of
a good platform.

You are so cool! I don't

You are so cool! I don't suppose I've read a single thing like this before.

So nice to find somebody with a few unique thoughts on this topic.
Seriously.. thanks for starting this up. This website is one thing that is needed on the internet, someone with some originality!

Nice post. I used to be

Nice post. I used to be checking continuously this blog and I'm inspired! Very helpful information specially the remaining phase :) I take care of such information much. I used to be looking for this certain info for a very long time. Thanks and good luck. |

It's a shame you don't have a

It's a shame you don't have a donate button! I'd certainly donate to this brilliant blog!

I guess for now i'll settle for book-marking and adding your RSS
feed to my Google account. I look forward to new updates and will talk about
this site with my Facebook group. Chat soon!

My partner and I absolutely

My partner and I absolutely love your blog and find most of your post's to be exactly I'm looking for.
Does one offer guest writers to write content in your case?

I wouldn't mind creating a post or elaborating on a
few of the subjects you write with regards to here. Again, awesome
website!

I am extremely impressed with

I am extremely impressed with your writing skills as well as with the layout on your blog.
Is this a paid topic or did you modify it yourself? Either way keep up the excellent quality writing, it is uncommon to see a nice
weblog like this one these days..

Superb blog! Do you have any

Superb blog! Do you have any suggestions for aspiring writers?
I'm hoping to start my own site soon but I'm a little lost on everything.
Would you advise starting with a free platform like Wordpress or go for a paid option? There are so
many choices out there that I'm totally overwhelmed ..
Any tips? Appreciate it!

Ahaa, its nice conversation

Ahaa, its nice conversation regarding this post at this place
at this blog, I have read all that, so at this time me also commenting at this
place.

Do you have a spam problem on

Do you have a spam problem on this blog; I also am a blogger, and I was wondering your situation; we have created some nice methods and we are looking to exchange solutions with others, please shoot me an e-mail if interested.|

Wow, this article is good, my

Wow, this article is good, my sister is analyzing such things,
therefore I am going to inform her.
Jay's Santa Clarita Tree Removal Kings
26174 Las Lanas Ct, Santa Clarita, CA 91355
661-464-1270
laureljefferson09875 [at] gmail [dot] com

Asking questions are truly

Asking questions are truly good thing if you are not
understanding anything totally, however this paragraph presents pleasant understanding yet.

An interesting discussion is

An interesting discussion is definitely worth comment.
I believe that you need to write more about this subject, it may not be a taboo subject
but generally folks don't speak about these subjects.
To the next! Many thanks!!

Thanks for your personal

Thanks for your personal marvelous posting!
I actually enjoyed reading it, you can be a great author.I will ensure
that I bookmark your blog and will often come back very
soon. I want to encourage you to ultimately continue your great job,
have a nice afternoon!

Taxi moto line 128 Rue la

Taxi moto line
128 Rue la Boétie
75008 Paris
+33 6 51 612 712  

Taxi moto paris

I think this is among the most important information for me.
And i'm glad reading your article. But wanna remark on few general things,
The site style is great, the articles is really nice : D.
Good job, cheers

I've learn a few good stuff

I've learn a few good stuff here. Definitely worth bookmarking for revisiting.
I wonder how so much effort you put to create one of these great informative website.

I don't even know how I ended

I don't even know how I ended up here, but I thought this post was great. I do not know who you are but certainly you're going to a famous blogger if you are not already ;) Cheers!|

Hello, this weekend is nice

Hello, this weekend is nice in favor of me, since this point in time i am reading this fantastic informative piece of
writing here at my residence.

M.E.C Mon Electricien

M.E.C Mon Electricien Catalan
44 Rue Henry de Turenne
66100 Perpignan
0651212596

Electricien Perpignan

Hey! Someone in my Myspace group shared this website with us so I came to give it a look.
I'm definitely loving the information. I'm book-marking and
will be tweeting this to my followers! Wonderful blog and wonderful
design and style.

I'm curious to find out what

I'm curious to find out what blog system you are working with?
I'm experiencing some small security problems with
my latest website and I would like to find something more secure.

Do you have any suggestions?

I constantly spent my half an

I constantly spent my half an hour to read this blog's posts
daily along with a cup of coffee.

For hottest news you have to

For hottest news you have to go to see internet and on internet I found this web page as a most excellent website for latest updates.|

Whats up this is somewhat of

Whats up this is somewhat of off topic but I was wanting to know if blogs use WYSIWYG editors or if you have
to manually code with HTML. I'm starting a blog soon but have
no coding experience so I wanted to get guidance from someone with experience.
Any help would be enormously appreciated!

excellent post, very

excellent post, very informative. I wonder why the other
specialists of this sector do not notice this. You must proceed your writing.
I am confident, you've a huge readers' base already!

It's difficult to find

It's difficult to find experienced people in this particular
subject, however, you seem like you know what you're talking
about! Thanks

Willie G youllied Its such as

Willie G youllied

Its such as you learn my mind! You seem to
understand a lot about this, like you wrote the ebook in it or something.
I believe that you just can do with some p.c. to force the message
home a little bit, however other than that, this is great blog.
An excellent read. I will definitely be back.

Hozzászólás

A mező tartalma nem nyilvános.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <del> <img>
  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
  • Engedélyezett HTML elemek: <a> <blockquote> <br> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <li> <ol> <p> <span> <strong> <ul>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>. The supported tag styles are: <foo>, [foo].
  • Minden email cím át lesz alakítva ember által olvasható módon, vagy (ha a JavaScript engedélyezett) ki lesz cserélve kattintható, de biztonságos hivatkozásra.