Romania: law history in git
The law of Romania as a git history: one file per article, one commit per law on the day it took effect, and the act that made each change as the commit's author. git blame names the act behind every paragraph; git log lists every change to an article; checking out a date gives the text in force that day.
It follows the shared design of lexifina/global-law, which places it at ro/. The texts are in Romanian, as published.
What is in it now
| Folder | Act | Versions | History |
| --- | --- | ---: | --- |
| constitutia/ | Constituția României | 2 | The 1991 text (in force on its approval by referendum, 8 December 1991) and the text revised by Legea nr. 429/2003 (in force 29 October 2003). It has not been amended since. |
| codul-civil/ | Codul civil (Legea nr. 287/2009) | 13 | The 2009 text and, the same day, the republished text in force from 1 October 2011, then every consolidated form to 3 May 2026 |
| codul-penal/ | Codul penal (Legea nr. 286/2009) | 45 | The 2009 text and, the same day, the text in force from 1 February 2014, then every consolidated form to 26 April 2026 |
| codul-procedura-civila/ | Codul de procedură civilă (Legea nr. 134/2010) | 28 | The 2010 text and, the same day, the republished text in force from 15 February 2013, then every consolidated form to 14 December 2025, including the 2015 republication |
| codul-procedura-penala/ | Codul de procedură penală (Legea nr. 135/2010) | 61 | The 2010 text and, the same day, the text in force from 1 February 2014, then every consolidated form to 13 June 2026 (one form, 2 March 2017, has no text on the portal) |
| codul-muncii/ | Codul muncii (Legea nr. 53/2003) | 61 | The 2003 text in force from 1 March 2003, then every consolidated form to 18 December 2025, including the 2011 republication with renumbered articles |
| legea-190-2018/ | Legea nr. 190/2018 (GDPR implementation) | 2 | The 2018 text in force from 31 July 2018 and its only consolidated form, 1 December 2019 (Legea nr. 233/2019) |
| legea-31-1990/ | Legea societăților nr. 31/1990 (company law) | 43 | The 1990 text in force from 17 December 1990, then every consolidated form to 18 December 2025, including the republications of 1998 and 2004 with renumbered articles. The portal has no form between 4 June 1991 and the 1998 republication. |
| codul-fiscal/ | Codul fiscal (Legea nr. 227/2015) | 149 | The 2015 text in force from 1 January 2016, then every consolidated form to 8 August 2026; four forms of 2026 have no text we could read, so their changes appear with the next form |
| codul-administrativ/ | Codul administrativ (OUG nr. 57/2019) | 46 | The 2019 text in force from 5 July 2019 (without its annexes), then every consolidated form to 30 March 2026 |
| legea-554-2004/ | Legea contenciosului administrativ nr. 554/2004 | 20 | The 2004 text in force from 6 January 2005, then every consolidated form to 10 July 2025, including the changes made by Constitutional Court decisions |
| legea-85-2014/ | Legea nr. 85/2014 privind procedurile de prevenire a insolvenței și de insolvență (insolvency) | 14 | The 2014 text in force from 28 June 2014, then every consolidated form to 18 December 2025 |
| legea-544-2001/ | Legea nr. 544/2001 privind liberul acces la informațiile de interes public (freedom of information) | 6 | The 2001 text in force from 22 December 2001, then every consolidated form to 10 May 2024 (that last form changes no article) |
| legea-8-1996/ | Legea nr. 8/1996 privind dreptul de autor și drepturile conexe (copyright) | 21 | The 1996 text in force from 24 June 1996, then every consolidated form from 30 July 2004 to 1 May 2022, including the 2018 republication with renumbered articles. The portal has no form before 30 July 2004. |
| legea-18-1991/ | Legea fondului funciar nr. 18/1991 (land law) | 37 | The 1991 text in force from 20 February 1991, the republished text of 5 January 1998, then every consolidated form from 19 October 2001 to 20 July 2025 |
| legea-448-2006/ | Legea nr. 448/2006 privind protecția și promovarea drepturilor persoanelor cu handicap (disability rights) | 57 | The 2006 text from 1 January 2007, then every consolidated form to 28 July 2025, including the 2008 republication with renumbered articles |
| legea-7-1996/ | Legea cadastrului și a publicității imobiliare nr. 7/1996 (cadastre and land registry) | 51 | The 1996 text in force from 24 June 1996, then every consolidated form from 4 March 2002 to 13 March 2026, including the republications of 2006, 2013 and 2015 with renumbered articles (one form, 11 December 2025, could not be read) |
| legea-50-1991/ | Legea nr. 50/1991 privind autorizarea executării lucrărilor de construcții (building permits) | 63 | The oldest text held, as republished on 13 January 1997 (the 1991 text as first published is not held), then every consolidated form from 1 January 2003 to 27 March 2026, including the 2004 republication with renumbered articles |
| oug-195-2002/ | Ordonanța de urgență a Guvernului nr. 195/2002 privind circulația pe drumurile publice (road traffic code) | 81 | The oldest text held, the consolidated form of 12 July 2004 (the 2002 text as first published is not held), then every consolidated form from 20 September 2006 to 27 March 2026, including the 2006 republication with renumbered articles (one form, 6 January 2023, could not be read) |
| og-2-2001/ | Ordonanța Guvernului nr. 2/2001 privind regimul juridic al contravențiilor (minor offences) | 23 | The 2001 text in force from 24 August 2001, then every consolidated form to 27 March 2026 |
| legea-129-2019/ | Legea nr. 129/2019 pentru prevenirea și combaterea spălării banilor și finanțării terorismului (anti-money laundering) | 14 | The 2019 text in force from 21 July 2019, then every consolidated form to 19 December 2025 (that last form changes no article) |
| legea-213-1998/ | Legea nr. 213/1998 privind proprietatea publică (public property) | 6 | The 1998 text in force from 23 January 1999 (without its annex), then every consolidated form to 5 July 2019, when the Codul administrativ repealed all of it but art. 6 |
| legea-272-2004/ | Legea nr. 272/2004 privind protecția și promovarea drepturilor copilului (children's rights) | 32 | The 2004 text in force from 1 January 2005, then every consolidated form to 10 April 2026, including the 2014 republication with renumbered articles |
| legea-273-2006/ | Legea nr. 273/2006 privind finanțele publice locale (local public finance) | 48 | The 2006 text in force from 1 January 2007, then every consolidated form to 25 February 2026; the changes of OUG nr. 63/2010 dated by the days its art. X gives |
| legea-188-1999/ | Legea nr. 188/1999 privind Statutul funcționarilor publici (civil servants) | 46 | The 1999 text in force from 7 January 2000, then every consolidated form to 2 August 2019, including the republications of 2004 and 2007 with renumbered articles |
| legea-297-2004/ | Legea nr. 297/2004 privind piața de capital (capital market) | 18 | The 2004 text in force from 29 July 2004, then every consolidated form to 20 June 2021; most of it repealed by later capital-market laws (Legea nr. 24/2017, Legea nr. 126/2018) |
| legea-85-2006/ | Legea nr. 85/2006 privind procedura insolvenței (insolvency, 2006-2014) | 11 | The 2006 text in force from 20 July 2006, then every consolidated form to 1 February 2014, the last; Legea nr. 85/2014 replaced it |
| legea-215-2001/ | Legea administrației publice locale nr. 215/2001 (local public administration, 2001-2019) | 40 | The 2001 text in force from 23 May 2001, then every consolidated form (republished with renumbered articles in 2007) to 20 July 2019, after the Codul administrativ repealed most of it |
| codul-fiscal-2003/ | Codul fiscal (Legea nr. 571/2003; the fiscal code of 2004-2015) | 61 | The 2003 text in force from 1 January 2004, then every consolidated form to 4 November 2015, the last; Legea nr. 227/2015 (codul-fiscal/) replaced it from 1 January 2016. One form, 1 January 2015, could not be read. Some articles are not given by the source for some years (see below) |
| legea-10-2001/ | Legea nr. 10/2001 privind regimul juridic al unor imobile preluate în mod abuziv în perioada 6 martie 1945 - 22 decembrie 1989 (restitution of property taken 1945-1989) | 24 | The oldest text held, the consolidated form of 13 August 2001 (the 2001 text as first published is not held), then every consolidated form to 20 July 2024, including the two 2005 republications (the second with renumbered articles). One form, 20 May 2013, could not be read |
| legea-165-2013/ | Legea nr. 165/2013 privind măsurile pentru finalizarea procesului de restituire, în natură sau prin echivalent, a imobilelor preluate în mod abuziv în perioada regimului comunist în România (finishing the restitution of property taken under communism) | 25 | The 2013 text in force from 20 May 2013, then every consolidated form to 8 August 2025 |
| legea-677-2001/ | Legea nr. 677/2001 pentru protecția persoanelor cu privire la prelucrarea datelor cu caracter personal și libera circulație a acestor date (data protection, 2001-2018) | 4 | The 2001 text in force from 12 December 2001, the consolidated forms of 12 May 2005 and 22 October 2007, and its repeal in full by Legea nr. 129/2018 from 24 June 2018 (the folder is empty from that day; the GDPR applied from 25 May 2018, and Legea nr. 190/2018 is in legea-190-2018/) |
| legea-82-1991/ | Legea contabilității nr. 82/1991 (accounting) | 25 | The 1991 text in force from 1 January 1992, then every consolidated form from the 2002 republication to 4 February 2025, including the republications of 2002, 2005 and 2008 with renumbered articles. The portal has no form between 1992 and the 2002 republication |
Every version is one of the Portalul legislativ's own consolidated forms ("forme consolidate"). The per-act README.md in each folder lists every article, how often it changed and when.
Not yet current to the day. The newest forms held are those of 3 May 2026 (Codul civil), 26 April 2026 (Codul penal), 14 December 2025 (Codul de procedură civilă), 13 June 2026 (Codul de procedură penală), 18 December 2025 (Codul muncii, Legea nr. 31/1990 and Legea nr. 85/2014), 1 December 2019 (Legea nr. 190/2018), 8 August 2026 (Codul fiscal), 30 March 2026 (Codul administrativ), 10 July 2025 (Legea nr. 554/2004), 10 May 2024 (Legea nr. 544/2001), 1 May 2022 (Legea nr. 8/1996), 20 July 2025 (Legea nr. 18/1991), 28 July 2025 (Legea nr. 448/2006), 13 March 2026 (Legea nr. 7/1996) and 27 March 2026 (Legea nr. 50/1991, OUG nr. 195/2002 and OG nr. 2/2001) 19 December 2025 (Legea nr. 129/2019), 10 April 2026 (Legea nr. 272/2004) 25 February 2026 (Legea nr. 273/2006) 20 June 2021 (Legea nr. 297/2004), 20 July 2024 (Legea nr. 10/2001), 8 August 2025 (Legea nr. 165/2013) and 4 February 2025 (Legea nr. 82/1991). Legea nr. 677/2001 is complete: Legea nr. 129/2018 repealed it in full, and its record ends with that repeal. Legea nr. 213/1998 is complete: its newest form, of 5 July 2019, shows it repealed save art. 6. Legea nr. 188/1999's newest form, of 2 August 2019, shows it repealed by the Codul administrativ from 5 July 2019, save its articles on performance evaluation (arts. 20-20^10, 60^1-60^4 and 62^1-62^13); the portal lists no later form. Legea nr. 85/2006's newest form, of 1 February 2014, is its last: Legea nr. 85/2014 replaced it from 28 June 2014, and the portal shows that as no form of the old law, so its record ends with that text. Legea nr. 215/2001's newest form, of 20 July 2019, follows its repeal by the Codul administrativ from 5 July 2019 (save the provisions that code kept); its record ends with that text. The 2003 Codul fiscal's newest form, of 4 November 2015, is its last: Legea nr. 227/2015 replaced it from 1 January 2016, and the portal shows that as no form of the old code, so its record ends with that text. Each act's latest version is the newest form we hold; amendments that took effect after it may be missing.
A lawyer's questions as git commands
| Question | Command |
| --- | --- |
| What did art. 1112 of the Codul civil say on 18 October 2014? | python tools/in_vigoare_la.py 2014-10-18 codul-civil 1112 |
| The same, with raw git (bash) | git show $(git rev-list -1 --before="2014-10-18T23:59:59Z" main -- codul-civil/art-1112.md):codul-civil/art-1112.md |
| The same, in PowerShell | $r = git rev-list -1 --before="2014-10-18T23:59:59Z" main -- codul-civil/art-1112.md; git show "$($r):codul-civil/art-1112.md" |
| Which act wrote each paragraph of art. 336 of the Codul penal? | git blame codul-penal/art-336.md |
| Every change to art. 297 of the Codul penal, word by word | git log -p --word-diff codul-penal/art-297.md |
| Every act in the record, in order | git log --reverse --format="%ad %an" --date=short main |
| Everything one act changed | git show law/legea-200-2023 (tags law/ mark each act's commit) |
| The whole act on a date | python tools/in_vigoare_la.py 2000-01-01 constitutia |
| The act as a consolidated form | git show codul-penal/2023-07-09 (tags ) |
Articles inserted later carry the portal's numbering: art. 112^1 is the file art-112-1.md (in_vigoare_la.py accepts 112^1). After a rebuild, refresh tags with git fetch --force --tags: a plain fetch keeps stale tags.
Dates
- Each commit is dated at noon, Europe/Bucharest, on the day the change took effect. Enactment and publication dates are trailers (
Enacted:,Published:); the in-force day is inIn-force:, which the tools read. - The in-force day is the portal's. Every amended provision carries a note such as "(la 09-07-2023, Alineatul (1), Articolul 297 ... a fost modificat de Punctul 3., Articolul I din LEGEA nr. 200 din 5 iulie 2023 ...)", and each consolidated form is dated by the day its changes took effect. In every form we read, the dated notes on the changes the form adds carry the form's own date.
- Default rule. Constituția art. 78: a law is published in the Monitorul Oficial and takes effect 3 days after publication, or on a later date it sets. The portal's dates already apply it and each law's own date.
- The Constitution was adopted on 21 November 1991 and took effect on its approval by the national referendum of 8 December 1991. The revision (Legea nr. 429/2003) was approved by the referendum of 18-19 October 2003 and took effect on 29 October 2003; the Legislative Council republished the Constitution with renumbered articles on 31 October 2003 (art. 152 became art. 156). Files follow each text's own numbering, so on 29 October 2003 many articles change and some numbers hold different articles.
- The codes before they took effect. Both codes were enacted in 2009 and amended before they took effect (the Civil Code mainly by Legea nr. 71/2011, the Penal Code by Legea nr. 27/2012, 63/2012 and 187/2012). Each code's first commit is the 2009 text, dated the day the code took effect; the next commits, the same day, are the amendments, so the text at the end of that day is the text in force.
- The procedure codes were enacted in 2010 and amended before they took effect: the Codul de procedură civilă by Legea nr. 76/2012, which ordered its republication and set 15 February 2013 as its first day; the Codul de procedură penală mainly by Legea nr. 255/2013, from 1 February 2014. As with the 2009 codes, the first commit is the 2010 text, dated the day the code took effect, and the amendments follow the same day.
- The Codul muncii took effect on 1 March 2003 (its art. 298 alin. (1)). Legea nr. 190/2018 took effect on 31 July 2018, 5 days after publication (its art. 16). Legea nr. 31/1990 took effect on 17 December 1990, 30 days after publication (its art. 221). The Codul fiscal took effect on 1 January 2016 (its art. 501), save where it provides otherwise. Legea nr. 554/2004 took effect on 6 January 2005, 30 days after publication (its art. 31). Legea nr. 85/2014 sets no day of its own, so it took effect on 28 June 2014, 3 days after its publication on 25 June 2014 (Constituția art. 78). Legea nr. 544/2001 took effect on 22 December 2001, 60 days after publication (its art. 23 alin. (1)). Legea nr. 8/1996 took effect on 24 June 1996, 90 days after publication (its art. 154 alin. (1)); the portal has no consolidated form before 30 July 2004, so the changes made up to then (Legea nr. 146/1997, Legea nr. 285/2004) appear together that day. The Codul administrativ took effect on publication, 5 July 2019 (its art. 597 alin. (1)); the provisions it starts later are shown from that day too, and its annexes are not included. Legea nr. 18/1991 took effect on publication, 20 February 1991 (its art. 102). Legea nr. 7/1996 took effect on 24 June 1996, 90 days after publication (its art. 72). Legea nr. 448/2006 sets no general day, so most of it took effect 3 days after its publication on 18 December 2006, but its art. 101 starts art. 42 alin. (1) and art. 57 alin. (4)-(5) on 1 January 2007; its history here starts on 1 January 2007, when the whole text applied. The portal has no consolidated form of Legea nr. 18/1991 before 19 October 2001 (apart from the 1998 republication) and none of Legea nr. 7/1996 before 4 March 2002, so earlier changes appear together on those days. Legea nr. 50/1991 was enacted on 29 July 1991 and first published in the Monitorul Oficial nr. 163 of 7 August 1991; that text is not held, so its history starts with the oldest text held, the law as republished on 13 January 1997 (under art. III of Legea nr. 125/1996, already with the changes of OG nr. 4/1994, Legea nr. 82/1995 and Legea nr. 114/1996), committed as the publisher's "oldest version available". No enacted version is made up. The portal has no form between that republication and 1 January 2003, so the changes of those years appear together that day. OUG nr. 195/2002 was adopted on 12 December 2002, first published in the Monitorul Oficial nr. 958 of 28 December 2002 and applied from 1 February 2003 (its art. 118); that text is not held, so its history starts with the oldest text held, the portal's consolidated form of 12 July 2004, committed as the publisher's "oldest version available". The portal has no form between that day and 20 September 2006, when Legea nr. 49/2006 (which approved the ordinance) took effect, so the changes of those years appear together that day; the text republished under art. III of Legea nr. 49/2006 (Monitorul Oficial nr. 670 of 3 August 2006, with renumbered articles) applies from that day too and follows that day's consolidated form. OG nr. 2/2001 was published in the Monitorul Oficial nr. 410 of 25 July 2001 and took effect 30 days later, on 24 August 2001 (its art. 51 alin. (1)). Its amounts in old lei are printed in new lei only from the form of 30 June 2016, with no note; that change is the publisher's. Legea nr. 129/2019 was published in the Monitorul Oficial nr. 589 of 18 July 2019 and sets no day of its own, so it took effect on 21 July 2019, 3 days after publication. Legea nr. 213/1998 took effect on 23 January 1999, 60 days after its publication on 24 November 1998 (its art. 27). Legea nr. 272/2004 took effect on 1 January 2005 (its art. 148 alin. (1)); the few provisions that article starts 3 days after publication are shown from 1 January 2005 too. Its republication of 5 March 2014 (under art. V of Legea nr. 257/2013, with renumbered articles) is read from the republished text as printed. Legea nr. 273/2006 took effect on 1 January 2007 (its art. 86 alin. (1)); the provisions that article starts on other days are shown from 1 January 2007 too. Legea nr. 188/1999 took effect on 7 January 2000, 30 days after publication (its art. 104 alin. (1)); the portal has no form before 21 April 2003, so the changes made up to then appear together that day. Its republications of 22 March 2004 (under art. XXVI of Legea nr. 161/2003) and 29 May 2007 (under art. III of Legea nr. 251/2006), with renumbered articles, are read from the republished texts as printed. Legea nr. 297/2004 took effect on 29 July 2004, 30 days after publication (its art. 290 alin. (1)); the portal has no form before 8 July 2005, so the changes made up to then appear together that day. Its notes on articles repealed with a whole title or chapter are printed just after each article; they are read as that article's notes. Legea nr. 85/2006 took effect on 20 July 2006, 90 days after publication (its art. 156 alin. (1)); the portal has no form before 22 November 2006, so the changes made up to then appear together that day. Legea nr. 215/2001 took effect on 23 May 2001, 30 days after publication (its art. 157 alin. (1)); the portal has no form before 29 April 2002. Its text republished on 20 February 2007 (under art. III of Legea nr. 286/2006) renumbers the articles, so many files change that day. The Codul fiscal of 2003 (Legea nr. 571/2003) took effect on 1 January 2004 (its art. 297, unless the code provides otherwise); the portal has no form between 7 December 2004 and 3 April 2007, so the changes of those years appear together on 3 April 2007, save the repeals, which are dated by their acts. Legea nr. 10/2001 was enacted on 8 February 2001 and first published in the Monitorul Oficial nr. 75 of 14 February 2001, in force that day (Constituția art. 78 as it then stood); that text is not held, so its history starts with the oldest text held, the portal's consolidated form of 13 August 2001, committed as the publisher's "oldest version available". Its texts republished on 4 April 2005 (under art. III of Legea nr. 48/2004) and 2 September 2005 (under art. VII of title I of Legea nr. 247/2005, with renumbered articles) are read as printed, so many files change on the second day. Legea nr. 165/2013 sets no day of its own, so it took effect on 20 May 2013, 3 days after its publication on 17 May 2013 (Constituția art. 78); the portal has no form before 24 December 2013, so the changes made up to then appear together that day. Legea nr. 677/2001 took effect on 12 December 2001, the day of its publication (its art. 36). Legea nr. 82/1991 took effect on 1 January 1992 (its art. 45); the portal has no form before its republication of 26 August 2002 (under art. III of OG nr. 61/2001), so the changes of 1992-2002 appear together that day, credited to that ordinance, as the republication note says; its republications of 14 January 2005 (art. IV of OG nr. 70/2004) and 18 June 2008 (art. II of OUG nr. 102/2007) renumbered its articles.
- Each provision on its own day (Legea nr. 273/2006). The portal's form of 2 July 2010 prints OUG nr. 63/2010 in full on the day it was published. The ordinance as published took effect on 5 July 2010 (its art. X), so that form is dated 5 July 2010. Its art. X starts art. I pct. 41 and 42 thirty days after that, on 4 August 2010 (the portal's notes say 1 August 2010; the ordinance counts from its own in-force day, and the act wins), and the changes of art. I pct. 1-8, 11, 13-15, 17-21, 25-40 and 43 on 1 January 2011; the portal's notes say so ("se aplică începând cu data de ..."), and each change is dated by its day, the earlier text standing until then. Where one article holds changes with different days (arts. 5 and 78), each paragraph or letter changes on its own day. Art. 83, which the form of 2 July 2010 already leaves out, stays until its repeal (art. I pct. 43) took effect on 1 January 2011. The portal's quotation of art. X inside the articles it concerns is not text.
- Changes printed early. The Codul administrativ's form of 30 October 2023 already prints changes to arts. 63 and 390 whose notes put them in force on 1 November 2023; they are dated 1 November 2023.
- Changes between two forms. Where a Codul fiscal note dates a change to a day for which the portal has no form of its own (for example 1 April 2019, carried by the form of 20 April 2019), the change is dated by the note, with the later form's text for the articles it names.
- Republications without a form of their own: the Codul de procedură civilă republished on 10 April 2015 (under art. XIV of Legea nr. 138/2014) and the Codul muncii republished on 18 May 2011 (under art. V of Legea nr. 40/2011, renumbering its articles) are read from the republished text as printed (the portal's DetaliiDocumentAfis page), since their own pages show the newest form. Their changes are credited to the act that ordered the republication, except where an article note names another act.
- Gaps. The Codul de procedură penală's form of 2 March 2017 has no text on the portal, so its changes appear with the form of 3 March 2017. Legea nr. 31/1990 has no form between 4 June 1991 and its republication of 29 January 1998, so the changes of those years appear together that day, uncredited (several acts made them). The Codul fiscal's forms of 25 February, 16 April, 8 May and 1 July 2026 are missing, so their changes appear with the next form held. The 2003 Codul fiscal's form of 1 January 2015 is missing too; its changes appear with the form of 15 January 2015. Legea nr. 10/2001's form of 20 May 2013 is missing; its changes appear with the form of 1 February 2014.
- A law repealed in full (Legea nr. 677/2001). Art. V alin. (1) of Legea nr. 129/2018 reads "La data de 25 mai 2018 se abrogă Legea nr. 677/2001" (the day the General Data Protection Regulation applied), and the portal's note on the law gives that day. But Legea nr. 129/2018 was published on 19 June 2018, and its art. VIII alin. (2) puts it in force 5 days later, save some provisions it lists, which do not include art. V; a law provides only for the future (Constituția art. 15 alin. (2)). So the repeal is dated 24 June 2018, the day art. V took effect: one commit removes every article, credited to Legea nr. 129/2018, and the folder is empty from that day.
- Provisions printed before their day (Legea nr. 82/1991). The portal's form of 7 September 2004 already prints the changes of OG nr. 70/2004, which its art. III puts in force on 1 January 2005, so they are dated 1 January 2005. The same article defers art. 2 alin. (1^1) lit. c) and d) to 1 January 2006 and alin. (3) and (6) of the new art. 25^1 (art. 27 from the 2005 republication) to 1 January 2007, which the forms print from 2004; those inserted provisions are absent until their day and are added that day, credited to OG nr. 70/2004. The form of 26 February 2021 prints art. 28 inside art. 27; it is filed as its own article. The forms of 2015-2020 print the heading and name of chapter IV in arts. 26 and 27; they are left out.
- Repealed articles left out. Legea nr. 8/1996's forms of 2004-2013 leave a repealed article out entirely; later forms print it as "Abrogat". Each such article is shown repealed from the first form that leaves it out, credited to the act its repeal note names (Legea nr. 285/2004 for arts. 17-20, 29, 36, 93, 109, 111, 120, 122, 128, 132, 136 and 142; OUG nr. 123/2005 for art. 139^3, named in the form of 19 September 2005 that leaves it out), and the later "Abrogat" line is the publisher's typesetting. The form of 28 December 2005 leaves art. 144 out without a note; the later forms credit its repeal to art. XII of OUG nr. 190/2005, published and in force that same day, so art. 144 is shown repealed from 28 December 2005, credited to that ordinance. A form that left an article out with no repealing act to explain it would keep the article's earlier text; none does.
- Repealed articles left out (Legea nr. 18/1991, 448/2006, 7/1996, 50/1991, OUG nr. 195/2002, OG nr. 2/2001, Legea nr. 213/1998, Legea nr. 85/2006, Legea nr. 215/2001, Codul fiscal 2003, Legea nr. 10/2001). An article a form leaves out is shown repealed on the day the act that repealed it took effect (on publication for an emergency ordinance, 3 days after for a law, unless the act sets its own day), credited to that act; each repealing act was read as published. Legea nr. 18/1991: arts. 60, 108 and 109, by Legea nr. 247/2005 (25 July 2005). Legea nr. 448/2006: art. 26, by Legea nr. 241/2007 (27 July 2007; no note on the portal, the repeal is in that law's single article, lit. q)); art. 90, by OUG nr. 84/2010 (22 September 2010). Legea nr. 7/1996: art. 59, by OUG nr. 64/2010 (2 July 2010). Legea nr. 50/1991: arts. 9 and 29, by Legea nr. 453/2001 (31 August 2001, before the next form of 1 January 2003, so as a version of its own; no note on the portal, the repeals are in that law's art. I pct. 13 and 29); arts. 37 and 38, by Legea nr. 401/2003 (26 December 2003; no note on the portal, art. I pct. 28 and 30); art. 46, by Legea nr. 52/2006 (19 March 2006); art. 30^1, by Legea nr. 261/2009 (14 October 2009). OUG nr. 195/2002: art. 27, by OUG nr. 69/2007 (29 June 2007). OG nr. 2/2001: arts. 22, 43 and 45, by OUG nr. 108/2003 (29 October 2003, the day the revised Constitution took effect, as its art. IV provides); art. 50^1, by Legea nr. 353/2006 (28 July 2006), which, approving OG nr. 8/2006, struck the point that had added it. Legea nr. 213/1998: arts. 1, 2, 5, 7, 11, 13 and 17, by Legea nr. 71/2011 (art. 89), on 1 October 2011: that law took effect with the Civil Code (its art. 221), although the portal's later notes give 13 June 2011. Legea nr. 188/1999: art. 22^1, inserted by OUG nr. 105/2009 (art. I pct. 3), ceased to have effect on 28 February 2010, 45 days after Decizia Curții Constituționale nr. 1.629/2009 found that point unconstitutional (Constituția art. 147 alin. (1)); the form of 1 March 2010 leaves it out with no note, and the form of 11 July 2010 prints it again in the new wording of Legea nr. 140/2010, credited to that law. Legea nr. 85/2006: art. 155, by OUG nr. 173/2008 (26 November 2008); arts. 10, 42 and 50, by Legea nr. 277/2009 (17 July 2009), which approved that ordinance; art. 154^1, by Legea nr. 169/2010 (24 July 2010). Legea nr. 215/2001: arts. 30, 62 and 131, by Legea nr. 161/2003 art. 117 (24 April 2003, 3 days after publication; the portal's form of the publication day already leaves them out); arts. 26, 27 and 130-144 (section 1 of chapter VIII), by Legea nr. 340/2004 art. 44 (24 July 2004); arts. 53, 60 and 80, by Legea nr. 393/2004 art. 85 (6 December 2004, 60 days after publication); arts. 32, 33, 57, 74-76, 78, 79, 81, 83-86, 120 and 145-153, by Legea nr. 286/2006 art. I (21 July 2006). The forms leave these out with no note; the repealing acts name them. Codul fiscal 2003: art. 246, by Legea nr. 174/2004 (28 May 2004); arts. 96-101, by OUG nr. 138/2004, and art. 102, by OG nr. 83/2004 (1 January 2005); arts. 238, 243 and 245, by Legea nr. 494/2004, which added their repeal to OG nr. 83/2004, so also 1 January 2005; art. 33, by OUG nr. 24/2005 (1 May 2005); art. 92, by Legea nr. 163/2005 (4 June 2005); art. 290, by Legea nr. 343/2006 (1 January 2007); arts. 214^1-214^3, by OUG nr. 50/2008 (1 July 2008); arts. 162-175^4, 178-206, 222-237, 239-242, 244 and 244^1, by OUG nr. 109/2009 art. III alin. (3) as Legea nr. 76/2010 rewrote it (1 April 2010); arts. 103-112, 107^1, 221 and 221^2, by Legea nr. 76/2010 (14 May 2010); art. 206^59, by OUG nr. 117/2010 (1 January 2011). Legea nr. 10/2001: art. 43, by Legea nr. 1/2009 (6 February 2009). Where the portal has no form between the repeal and the form that leaves the article out, the repeal is a version of its own. Where a form leaves out an article already shown as "Abrogat" (Legea nr. 18/1991 arts. 66-73 in 2013-2014; Legea nr. 7/1996 art. 30 in two forms of 2012-2013), nothing changed in the law and the "Abrogat" text is kept. Legea nr. 18/1991 prints arts. 66-73 as one article, "Articolul 66-Articolul 73 / Abrogate.", until 2015; each of the eight articles gets that text. Legea nr. 7/1996's form of 2 May 2013 is the first after its republication of 7 February 2013 (its header says so), which is read in between.
- Articles left out and printed again (OUG nr. 195/2002). Several forms leave out art. 39 with no act repealing it, and a later form prints it again. Where it comes back unchanged (forms of 7 November 2008 and 25 November 2010), or differing only in diacritics (forms of 1 February and 1 September 2014), its earlier text is kept through the forms that leave it out. The forms of 20 January to 2 August 2007 leave it out and the form of 17 August 2007 prints it in the new wording of Legea nr. 6/2007 (art. I pct. 11), which gives that wording word for word and took effect on 20 January 2007; art. 39 has that wording from 20 January 2007, credited to Legea nr. 6/2007.
- Rejected emergency ordinances. Where Legea nr. 50/1991's portal note says a provision went back to its earlier wording (or was removed) because the emergency ordinance that changed it was rejected by a law (for example OUG nr. 100/2016, rejected by Legea nr. 86/2017), the change is credited to the rejecting law.
- Other acts' text left out. Legea nr. 448/2006's forms of 25 July to 11 November 2024 print implementing norms (with their own articles and annexes) inside art. 24, and the form of 6 January 2017 prints an article of another act after art. 42; neither is the law's text. OUG nr. 195/2002's form of 19 January 2013 prints, inside art. 20, the consolidator's note quoting art. II of Legea nr. 203/2012 with its list of equivalent licence categories; that is not the ordinance's text either. OG nr. 2/2001's forms of 2007-2013 print, inside art. 51, the consolidator's note quoting arts. II and III of Legea nr. 182/2006, and some forms print the Government's signatures there; neither is the ordinance's text.
- Amending articles keep the text they quote (Legea nr. 129/2019). Arts. 53, 54 and 55 amend OG nr. 26/2000, Legea nr. 31/1990 and Legea nr. 207/2015 and quote the articles they insert or rewrite there (for example "Articolul 62^1" of Legea nr. 207/2015). The quoted text stays inside the amending article, as printed; it is not filed as articles of Legea nr. 129/2019.
- Government decisions. Legea nr. 272/2004 leaves the amount of the monthly placement allowance (art. 119, later art. 129) to the Government; where the portal's note names the Government decision (hotărâre) that set it, the change is credited to that decision. Where an older form prints such a note as a plain paragraph, it is read as the article's note, not as text. The 2014 republication's footnotes on the renamed child-protection authority, printed inside art. 155 by the forms of 2014-2016, are not text either.
- Articles printed inside the one before (Legea nr. 188/1999). The forms of 22 May, 30 July and 23 November 2004 print arts. 29, 32 and 34 as an empty article heading (or a bare "ART. 29 *)" paragraph) inside the article before, with the article's text after it; the text from that heading on is filed as the article it names.
- Text printed before its law (Legea nr. 215/2001). The portal's form dated 23 April 2004 already prints changes made by Legea nr. 141/2004 (in force 7 May 2004), a rectification of 7 May 2004 and Legea nr. 340/2004 (in force 24 July 2004). In that version only, arts. 120^1-120^3 (inserted by Legea nr. 141/2004) are absent, and arts. 26, 27, 46, 109, 130, 132-144 and 154 read "[Sursa nu dă textul în vigoare la această dată.]" (the source does not give the text in force on this date), in the publisher's name; the form of 7 May 2004 and the later forms give their text.
- Text the source does not give (Codul fiscal 2003). The forms of 3 April 2007 and of 1 November 2008 to 8 December 2014 print, for 27 articles of title III (income tax: arts. 47-54, 56-60, 58^1, 69, 70, 70^1, 72-74, 79, 79^1, 83, 84, 84^1, 86 and 91), only the portal's note that an earlier chapter was replaced, or leave them out, although no act repealed them and acts amended them in those years; arts. 176 and 177 of title VII (the level of excise duties and the excise on cigarettes) are printed in no form of 1 April 2010 to 1 January 2013, although OUG nr. 109/2009 and Legea nr. 76/2010, which repealed the articles around them, leave them out and OUG nr. 117/2010 amended them. No page held gives their text in force in those years. From the first such form until the next form that prints them (1 July 2007, 8 December 2014, 15 January 2015 or, for arts. 176 and 177, 1 February 2014) each reads "[Sursa nu dă textul în vigoare la această dată.]" (the source does not give the text in force on this date), in the publisher's name; the text printed again is taken as printed. The portal's note on the replaced chapter is not text. REPRODUCE.md lists every span.
- Constitutional Court decisions. Where an older OG nr. 2/2001 form says a provision ceased to have effect under a Constitutional Court decision (art. 32 alin. (1), Decizia nr. 953/2006, from the form of 10 March 2007), the change is credited to that decision. Legea nr. 10/2001's art. 47 ceased to have effect on 14 December 2008, 45 days after the publication of Decizia nr. 1.055/2008, which found it unconstitutional; the form of 15 December 2008 leaves it out with no note, so the change is a version of its own, credited to that decision. Later forms print it as "Încetat efectele juridice.", which is the publisher's.
--before="YYYY-MM-DD"alone uses your clock's time of day, so a change that took effect that day may be missed before noon. UseT23:59:59Zas above, or the tool.
How it is checked
- Every version of every act is read back from git on the day it took effect and on the day before (
tools/check_repo.py); both must match the corpus. Results are inREPRODUCE.md. - Health checks: no merge commits on
main, commit dates never go backwards, nothing dated in the future, and every commit's trailers parse with git. - Against the official text: the newest version of each act is the portal's newest consolidated form, parsed article by article. The Civil Code's form of 3 May 2026 was read from two separate captures (pages 109884 and 130143) and they agree in all 2,674 articles. The newest form of each of the four later acts was also read from a second, separate capture of the act's page, and agrees article by article (1,143, 641, 297 and 16 articles), as do Legea nr. 31/1990 (467 articles) and Legea nr. 554/2004 (32 articles). Legea nr. 85/2014's newest form (18 December 2025), parsed afresh, equals the built text in all 402 articles, Legea nr. 544/2001's (10 May 2024) in all 26, and Legea nr. 8/1996's (1 May 2022) in all 240. For the Codul administrativ the newest form that has a second capture is that of 28 July 2025, and it agrees with the corpus on that day in all 674 articles. The Codul fiscal's newest form was held in one capture only; instead its version in force on 1 March 2026 was compared with that form as reproduced in legalize-ro (github.com/legalize-dev/legalize-ro, public domain), and 632 of 636 articles agree line for line; the other four differ only in how numbered points and tables are laid out there. Every version carries the capture URL and the sha256 of the page it was parsed from.
- The repository is rebuilt from the same data a second time and must give identical hashes.
What "author" means
The author of a commit is the act that made the change, with an e-mail address that cannot exist ([email protected]), so git blame and git log --author name acts. The committer is always Lexifina.
- Credits come only from the portal's amendment notes on the changed article, which name the amending act (law, government emergency ordinance, Constitutional Court decision or rectification). Older forms print the same notes without a date; there a note counts when it is new on the article.
- Constitutional Court decisions are commits of kind "court": where the portal changed the text because a decision took effect (art. 147 of the Constitution: 45 days after publication unless Parliament acts), the change is credited to the decision, from the article's note. Decisions that left the words unchanged are not shown.
- Whole-text changes. The 2003 republication of the Constitution and the 2011 republication of the Civil Code are credited to the act that ordered them (Legea nr. 429/2003, Legea nr. 71/2011), as the portal's note on each republished text does, except where an article note names another act; so is the 2004 republication of Legea nr. 31/1990 (Legea nr. 161/2003).
- Unexplained changes are committed by the publisher, the Portalul legislativ, and labelled "unexplained": ten diacritic corrections in the Codul penal on 20 May 2014 ("amendă" to "amenda" and the like), one in the Codul civil ("1)" to "(1)", art. 253, 3 October 2018), and two changes of paragraph breaks only (Codul penal arts. 194 and 378). In the later acts most are the portal's own typesetting, made and undone between forms: the Codul muncii's form of 22 April 2007 drops every diacritic (271 articles) until the 2011 republication restores them, and the Codul de procedură civilă's forms of 2013-2014 change words such as "străinătate"/"străînătate" and "comunică"/"comunica" back and forth. Legea nr. 31/1990's forms of 2001-2005 drop and restore diacritics in most articles, and the Codul fiscal's tables are typeset differently from form to form; Legea nr. 544/2001's form of 29 June 2007 drops most diacritics, which the form of 1 February 2013 restores. The portal's own editorial paragraphs inside an article (on Constitutional Court rulings or rectifications) are left out of the later acts' text. Articles that disappear with no note (repealed provisions the portal stopped printing) are unexplained too. REPRODUCE.md lists every one.
- Blame credits whole lines (one paragraph per line). In an article written by several acts, use
git log -p --word-diffto see exactly which words each act changed.
What it does not show
- Amendments after mid-2026, as above.
- Editorial notes (the portal's "Notă" boxes, which quote decisions of the Constitutional Court and the High Court and transitional provisions of amending laws) and the amendment notes themselves are not in the text. From its form of 3 February 2019 the portal prints two High Court holdings on art. 6 as paragraphs of Codul penal art. 183; they are left out.
- Rulings that only interpret. High Court rulings (HP, RIL) and Constitutional Court decisions that left the wording unchanged are not commits.
- Chapter and section headings. Only articles are files; the books, titles, chapters and sections are not.
- Portal notes printed as text. Some forms print an editorial note as a black paragraph inside an article ("Conform art. XII ... din LEGEA nr. 2 ... publicată în MONITORUL OFICIAL ...", or a note that a Constitutional Court decision ended a provision's effects). In the four later acts these paragraphs are left out (the gazette in capitals marks them; the acts' own text writes "Monitorul Oficial"), and an article that a publisher's note quotes from another act ("Articolul XVII") is not a file. Legea nr. 10/2001's forms print such notes in arts. 20, 22, 30 and 31 (on the extensions of the art. 22 time limit, the quoted text of repealed art. 28, of art. 6 of title VII of Legea nr. 247/2005 and of arts. II-IV of an amending law, and on a renamed ministry); they are left out too, as are the articles II-VI of Legea nr. 247/2005 that its later forms quote after the law's text. Legea nr. 165/2013's forms of 2 November 2020 and later print the holding of a High Court ruling as a paragraph of art. 35; it is left out.
- The 2009 Civil Code text's glitches. On the portal, arts. 1.251, 2.367, 2.374 and 2.655 of the 2009 text are printed outside their article markup; they are given their own files. Art. 2.448 is run into art. 2.447 and is left there.
- Commencement and applicability conditions in transitional provisions are in the text, not in the dates; no applicability data is recorded.
How it is built
Lexifina reads the sources listed here and records each act's dated versions, and the laws that made each change, in one corpus file. tools/build.py writes this repository from that file, and the same corpus always gives the same commit hashes; REPRODUCE.md gives the details and the checks. A model (Claude) wrote Lexifina's code; it wrote no legal text, and no model runs when the history is built.
Every form is read from an archived copy of the portal's page, and each form's capture is pinned; a capture counts only if it is complete and shows the form its id stands for. Lexifina's code turns those pages into the corpus, and the shared builder tools/build.py writes the history with git fast-import.
No AI model wrote or changed legal text. Claude Opus 5.5 wrote the scripts and chose the sources; see REPRODUCE.md.
Sources
| Source | Kind | Past versions by date | Names the amending act | API or bulk | Notes | | --- | --- | --- | --- | --- | --- | | Portalul legislativ · Web service | Official legislation, Ministry of Justice | yes, every consolidated form | yes, a note on each amended provision | SOAP web service | Used, through archived copies of its pages | | Internet Archive | Web archive | n/a | n/a | – | – | | – | Web archive | n/a | n/a | index files, WARC byte ranges | Captures of the portal's pages (2022-2026), used for many forms of the acts added in October 2026; WARC file, offset and length pinned per version. | | legalize-ro | Reconstructed history (public-domain data) | yes | yes | git | Used only to check text (the Codul fiscal); it holds none of the other acts here beyond the Constitution | | romanian-law-data | Datasets | n/a | n/a | Parquet | Daily releases from legislatie.just.ro; not used |
Research guides that cover every country: GlobaLex and the Law Library of Congress Guide to Law Online.
Licence
The legal texts are official texts of normative acts of Romania, as published by the Ministry of Justice on the Portalul legislativ. Sursa: Portalul legislativ al Ministerului Justiției, https://legislatie.just.ro. Romanian copyright law excludes official legislative texts from protection (Legea nr. 8/1996, art. 9 lit. b). The arrangement, tables, commit messages and tools are by Lexifina, under the terms in LICENSE.
This repository is not legal advice and not an official publication.
În limba română
Istoria dreptului românesc în git: un fișier pentru fiecare articol și un commit pentru fiecare act normativ, datat în ziua intrării sale în vigoare și semnat de actul care a făcut modificarea (git blame numește actul fiecărui paragraf). Conține Constituția României (textul din 1991 și textul revizuit prin Legea nr. 429/2003, în vigoare de la 29 octombrie 2003), Codul civil (de la 1 octombrie 2011 până la forma consolidată din 3 mai 2026), Codul penal (de la 1 februarie 2014 până la forma consolidată din 26 aprilie 2026), Codul de procedură civilă (de la 15 februarie 2013 până la forma din 14 decembrie 2025), Codul de procedură penală (de la 1 februarie 2014 până la forma din 13 iunie 2026), Codul muncii (de la 1 martie 2003 până la forma din 18 decembrie 2025), Legea nr. 190/2018 (de la 31 iulie 2018; forma din 1 decembrie 2019), Legea societăților nr. 31/1990 (de la 17 decembrie 1990 până la forma din 18 decembrie 2025), Codul fiscal (de la 1 ianuarie 2016 până la forma din 8 august 2026), Codul administrativ (de la 5 iulie 2019 până la forma din 30 martie 2026, fără anexe) Legea contenciosului administrativ nr. 554/2004 (de la 6 ianuarie 2005 până la forma din 10 iulie 2025) Legea nr. 85/2014 privind procedurile de prevenire a insolvenței și de insolvență (de la 28 iunie 2014 până la forma din 18 decembrie 2025) Legea nr. 544/2001 privind liberul acces la informațiile de interes public (de la 22 decembrie 2001 până la forma din 10 mai 2024) Legea nr. 8/1996 privind dreptul de autor și drepturile conexe (de la 24 iunie 1996; formele consolidate de la 30 iulie 2004 până la 1 mai 2022), Legea fondului funciar nr. 18/1991 (de la 20 februarie 1991; republicarea din 5 ianuarie 1998 și formele de la 19 octombrie 2001 până la 20 iulie 2025), Legea nr. 448/2006 privind protecția și promovarea drepturilor persoanelor cu handicap (de la 1 ianuarie 2007 până la forma din 28 iulie 2025) Legea cadastrului și a publicității imobiliare nr. 7/1996 (de la 24 iunie 1996; formele de la 4 martie 2002 până la 13 martie 2026), Legea nr. 50/1991 privind autorizarea executării lucrărilor de construcții (de la textul republicat la 13 ianuarie 1997, cel mai vechi text pe care îl avem; formele de la 1 ianuarie 2003 până la 27 martie 2026), Ordonanța de urgență a Guvernului nr. 195/2002 privind circulația pe drumurile publice (de la forma consolidată din 12 iulie 2004, cel mai vechi text pe care îl avem; formele de la 20 septembrie 2006 până la 27 martie 2026), Ordonanța Guvernului nr. 2/2001 privind regimul juridic al contravențiilor (de la 24 august 2001 până la forma din 27 martie 2026), Legea nr. 129/2019 pentru prevenirea și combaterea spălării banilor și finanțării terorismului (de la 21 iulie 2019 până la forma din 19 decembrie 2025), Legea nr. 213/1998 privind proprietatea publică (de la 23 ianuarie 1999 până la forma din 5 iulie 2019, când Codul admini
... (README truncated for length)