Brevissimo Subversion tutorial

HO da poco caricato nel repository di wordpress.org la nuova versione aggiornata del mio plugin FlickrRSS RU ed essendo passato un po di tempo dall’ultima volta che l’ho fatto, ci ho impiegato qualche minuto per ricordarmi bene la procedura. Ecco quindi una brevissima guida per ricordami bene come si fa la prossima volta. In realtà questa guida va benissimo per qualsiasi progetto utilizzi subversion come software di controllo di versione.

Per prima cosa se non avete già una copia in locale sincronizzata (o non vi ricordate dove sia) bisogna scaricare il repository, spostatevi nella cartella dove lo volete scaricare e create una cartella in cui metterlo:

$ mkdir flickrrssRU

poi lanciate il comando per copiarlo tutto in locale

$ svn checkout http://svn.wp-plugins.org/flickrrss-ru flickrrssRU 

l’output sarà qualcosa di simile a questo:

A    flickrrssRU/trunk
A    flickrrssRU/trunk/flickrrssRU.php
A    flickrrssRU/trunk/screenshot-2.png
A    flickrrssRU/trunk/flickrrssRU-settingspage.php
A    flickrrssRU/trunk/readme.txt
A    flickrrssRU/trunk/screenshot-1.png
A    flickrrssRU/branches
A    flickrrssRU/tags

spostatevi nella cartella della copia locale, per esempio nel mio caso

$ cd /var/www/flickrrssRU 

e controllate che sia aggiornata all’ultima versione sul repository. Nel caso ci siano più persone che lavorano allo stesso plugin (più in generale allo stesso progetto) potrebbe essere che non lo sia, ovviamente qualcuno potrebbe aver modificato il progetto. Se invece l’avete appena scaricato sarà sicuramente aggiornato.

$ svn update

se state per rilasciare una nuova versione del progetto, e non dovete solo apportare delle modifiche minori, prima di tutto bisogna taggare la versione attuale in modo da renderla fissa nel tempo. Per esempio nel caso la nuova versione aggiunga delle nuove funzioni, a qualcuno potrebbero non interessare, o un altro caso molto più comune è per la compatibilità, se nella versione che state andando a rilasciare sono state fatte delle grosse modifiche potebbe non funzionare più con alcune applicazioni, pertanto qualcuno in questi casi vorrà comunque continuare ad utilizzare le vesioni precedenti.

Per fare questo copiamo il contenuto della cartella trunk (quindi l’attuale versione del progetto da taggare) in una sottocartella di tags nominata con la versione che stiamo andando ad “archiviare”

$ svn copy trunk tags/0.2 

ora possiamo aggiornare e modificare i file che si trovano nella cartella trunk con i file della nuova versione. Ricordatevi se state rilasciando una nuova versione di un plugin per WP di modificare i numeri di versione anche all’interno del file readme. Una volta che avete inserito nella cartella trunk i file aggiornati se avete aggiunto dei nuovi file che prima non c’erano dovete lanciare questo comando:

$ svn add trunk/nome_nuovo_file

oppure se dovete eliminare dei file:

$ svn delete trunk/nome_file_da_rimuovere

Ora per finire bisogna caricare tutte le modifiche effettuate ovvero effettuare il COMMIT. Con esso tutte le modifiche effettuate sui dati vengono memorizzate. Il -m serve per poter personalizzare il messaggio di log ovvero il testo messo tra virgolette, è un aiuto quando si va a vedere il log del repository per ricordarsi le modifiche che sono state effettuate ad ogni commit.

$ svn commit -m "tagging version 0.2"

Comandi Subversion

Vi lascio la lista dei principali comandi di subversion (rigorosamente da lanciare preceduti dal comando svn) con una brevissima descrizione, per vedere bene come funzionano basta lanciare il comando:

$ svn help nome-del-comando

i comandi scritti tra parentesi tonde sono gli equivalenti meno user-friendly ma più veloci

add Aggiunge file e directory al controllo di versione
blame (praise, annotate, ann) Restituisce il contenuto dei file specificato con varie informazioni
cat Restituisce il contenuto dei file specificato
checkout (co) Copia in locale una working copy
commit (ci) Trasmette le modifiche della copia locale al repository
copy (cp) Copia file o cartelle da un sorgente ad una destinazione
delete (del, remove, rm) Rimuove file o cartelle dal controllo di versione
diff (di) Mostra le differenze tra due revisioni
export Crea una copia senza metterla sotto controllo di versione
help (?, h) Descrive l’uso di un comando
import Esegue il commit di un percorso non sotto il controllo di versione
info Mostra varie informazioni
list (ls) Elenca il contenuto della directory nel repository
lock Blocca cartelle e file nel repository dalla modifica da parte di altri utenti
log Mostra i log di un file o dell’intero repository
merge unisce varie modifiche dello stesso file
mergeinfo mostra le info relative al merge
mkdir crea una cartella nel repository
move (mv, rename, ren) sposta o rinomina file e cartelle
status (stat, st) Mostra lo stato attuale tra la copia locale e il repository
unlock Sblocca i percorsi o i file bloccati con lock
update (up) Aggiorna la copia locale con quella del repository

Ed ecco un “cheat sheet” per subversion:

flickrRSS RU – WP Plugin for Unlimited* and Random Images from Flickr to your blog

Integrate Flickr photos into your site. Random option and limit of 500 images. It supports user, set, favorite, group and community photostreams.

Contributors: Gianluca Crema, eightface
Donate link: PayPal
Official Page on wordpress.org: wordpress.org/extend/plugins/flickrrss-ru
Tags: flickr, photos, images, sidebar, widget, rss, random
Requires at least: 2.6
Tested up to: 3.0
Stable tag: 1.0

Description

This plugin allows you to easily display Flickr photos on your site. It supports user, set, favorite, group and community photostreams. The plugin is relatively easy to setup and configure via an options panel.

Avoids the limit of 20 images flickr feed to up to 500 images, implements a random function.

Derived from the flickrRSS plugin created by eightface adding RU functions (Random and Unlimited).

Installation

  1. Put the flickrRSS RU files into your plugins directory
  2. Activate the plugin
  3. Configure your settings via the panel in Options
  4. Add <?php get_flickrRSSRU(); ?> somewhere in your templates or adding the flickrRSSRU widget to your widget area.

Frequently Asked Questions

Can I get random images from my stream?

Yes, Just enable the Random option in the settings panel.

How do a I get borders between photos?

You need to edit your CSS file. There are plenty of tutorials online, you may find some help in the forum.

Why aren’t any photos showing up?

Sometimes it can take a little while to kick in, have patience. Flickr may possibly have been down.

Will it work with video?

Yes, videos will be displayed as a thumbnail image. You’ll need to click through to flickr to play it though.

Screenshots

Changelog

1.0 Modifica della parte più grossa del codice, risolto un bug nei link alle foto dei set

0.2 Initial release

Feedback and Support

For Feedback and Support leave a comment to this post or contact me from contact page. I’ll do my best to respond.

Soon I will create a forum.

Advanced

The plugin also supports a number of parameters, allowing you to have multiple instances across your site.

  1. 'type' => 'user' – The type of Flickr images that you want to show. Possible values: ‘user’, ‘favorite’, ‘set’, ‘group’, ‘public’
  2. 'set' => 'set_id' – Optional: To be used with type = ‘set’
  3. 'id' => 'user_set' – Optional: Your Group or User ID. To be used with type = ‘user’ or ‘group’
  4. 'random' => false – Optional: Enable the random images
  5. 'num_random' => 20 – Optional: Number of images which allows choosing randomly
  6. 'num_items' => 4 – The number of images that you want to display
  7. 'before_list' => ' ' – The HTML to print before the list of images
  8. 'html' => '<a href="%flickr_page%" title="%title%"><img src="%image_square%" alt="%title%"></a>' – the code to print out for each image.
    Meta tags available: %flickr_page%, %title%, %image_small%, %image_square%, %image_thumbnail%, %image_medium%, %image_large%
  9. 'default_title' => "Untitled Flickr photo" – the default title
  10. 'after_list' => ' ' – the HTML to print after the list of images

Example 1

<?php get_flickrRSSRU(array(
'num_items' => 50,
'type' => 'public',
)); ?>

This would show the 50 most recent community photos.

Example 2

<?php get_flickrRSSRU(array(
'set' => '72157620600672300',
'num_items' => 25,
'type' => 'set',
'random' => true,
'num_random' => 150
)); ?>

This would show 25 random picture from the 150 most recent thumbnail sized photos from the specified set.